본문 바로가기
DataBase/MySQL with Error

[해결 방법] Error Code: 1452. Cannot add or update a child row: a foreign key constraint fails

by HJ0216 2023. 6. 18.

🐬 기본 환경: IDE: MySQL Workbench, Language: MySQL

 

 

발생 Error

MySQL로 다음 Source Code를 실행할 경우,

1
2
insert into user_bookmark(user_id, content_id) values ('user_test001', 'test001');
 
 
 

🚨 다음과 같은 오류 발생

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

 

 

발생 원인

자식 테이블에서 부모테이블에 없는 PK값을 자식 테이블에서 데이터를 생성하여 insert 시도

 

 

해결 방법

user_bookmark table은 user table의 user_id를 식별관계*로 하고 있으므로 부모 테이블인 user table에 데이터가 없을 때는 부모테이블에 먼저 데이터를 입력한 다음에 자식 테이블에서 insert 해야 함

 * 식별관계: 부모 테이블의 기본키 또는 유니크 키를 자식 테이블이 자신의 기본키로 사용하는 관계

1
2
3
insert into user(user_id) values ('user_test001');
insert into user_bookmark(user_id, content_id) values ('user_test001''test001');