DBAtlas · 데이터베이스 운영 아틀라스

1452: Cannot add or update a child row: a foreign key constraint fails

MySQL

의미

자식 행을 삽입 또는 갱신하고 있지만, 가리키는 부모 키 값이 참조 테이블에 존재하지 않아 외래 키 제약 조건이 이를 거부한다.

원인

존재하지 않는 부모 키를 참조하는 INSERT/UPDATE, 잘못된 순서로 로드된 데이터(자식 먼저), 또는 삭제된 부모 행.

해결 방법

부모 행을 먼저 삽입한 뒤 자식 행을 삽입한다. 참조 값이 존재하는지 확인한다: SELECT * FROM parent_table WHERE key_column = value. 대량 로드에서 부모-자식 순서를 지킨다. SET FOREIGN_KEY_CHECKS=0은 통제된 유지보수 작업에서만 사용하고 완료 후 다시 1로 설정한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목