스프링부트 프로젝트를 하면서 조회 페이지에서 리뷰를 등록할 때,
아래의 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를 눌러주니
서버에서 정상적으로 처리되는 것을 볼 수 있었다.
'지식 저장소' 카테고리의 다른 글
같은 값 기준 정렬 후 페이징 시 목록 꼬임 문제 (0) | 2023.01.10 |
---|---|
Replication(복제) (0) | 2022.09.08 |
빌더 패턴(Builder Pattern) 을 사용하는 이유 (0) | 2021.12.30 |
REST방식 , JSON , AJAX 의미 (0) | 2021.12.28 |
javascript 사용 시 jQuery 미 호출시 오류 (0) | 2021.12.27 |