IT_Developers/MySQL
MySQL - ERROR 1217(23000): Cannot delete or update a parent row: a foreign key constraint fails. / 외래키 제약 풀기
고코더
2021. 11. 12. 21:40
안녕하세요.
고코더 입니다.
오류 메시지
●1. 데이터를 Delete 하던 중 이런 메시지를 만날 때가 있습니다. 해석 그대로 "상위 행을 삭제하거나 업데이트할 수 없습니다. 외래 키 제약 조건이 실패합니다."입니다.
ERROR 1217(23000): Cannot delete or update a parent row: a foreign key constraint fails.
@@foreign_key_checks
●2.외래 키가 걸린 데이터는 순차적으로 삭제해야 하지만 옵션을 해제하여 삭제가 가능합니다. 먼저 외래키 제한이 있는 조회 합니다.
SELECT @@foreign_key_checks;
●3. 조회 해보면 대부분 1로 되어 있을 것입니다.
foreign_key_checks 설정
●3. 해당 설정을 변경하는 건 아래처럼 설정이 가능합니다. 여기서 0으로 설정한다면 외래 키 제한 없이 데이터를 삭제할 수 있게 됩니다.
SET foreign_key_checks = 0; --// 해제
SET foreign_key_checks = 1; --// 설정
그래도 foreign key 걸려 있다면 한 번쯤 물어보고 수정합시다.