🐬 기본 환경: 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');
|