본문 바로가기
IT_Developers/MySQL

MySQL - ERROR 1217(23000): Cannot delete or update a parent row: a foreign key constraint fails. / 외래키 제약 풀기

by 고코더 2021. 11. 12.

안녕하세요.

고코더 입니다.

오류 메시지

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 걸려 있다면 한 번쯤 물어보고 수정합시다.

댓글