지식 저장소
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를 눌러주니
서버에서 정상적으로 처리되는 것을 볼 수 있었다.