지식 저장소

Cannot add or update a child row 에러

HDev 2022. 1. 19. 13:39

스프링부트 프로젝트를 하면서 조회 페이지에서 리뷰를 등록할 때,

 

아래의 Save changes 버튼을 눌러 Review의 DB에 값을 넣으려는 순간

 

 

서버에서

 

 

Cannot add or update a child row: a foreign key constraint fails (`bootex`.`review`, CONSTRAINT `FK9gnx

8llky658xey9qg00djyg5` FOREIGN KEY (`member_mid`) REFERENCES `m_member` (`mid`))

 

위와 같은 오류가 떴다.

 

일단 외래키와 관련된 오류 ( a foreign key constraint fails ) 인 것을 인지하고 자식테이블의 FK가 부모테이블의 PK 와 잘 연관이 되어있는지 확인했다.

 

문제가 없어서, 카페를 탐방하니

 

자식 테이블인 review의 member_mid 컬럼은 부모 테이블인 m_member의 mid 컬럼이 갖고 있는 값을 사용해야함을 인지했고

 

내가 넣으려는 리뷰의 member_mid 값이 부모 테이블에 없는 값을 넣었음을 깨달았다.

 

따라서 부모 테이블에 있는 값을 넘겨줬더니 해결이 되었다.

 

 

m_member의 mid값은 1~100 까지 있다.

 

따라서 

 

 

위의 리뷰어(member_mid)에 부모테이블에 존재하는 mid값중 하나인 100을 넣은 뒤, Save changes를 눌러주니

 

 

서버에서 정상적으로 처리되는 것을 볼 수 있었다.