개발일지/2023_한이음

[개발]🚨ERROR -java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row:

기억지기 개발자 2023. 7. 6. 15:45
외래 키 제약 조건을 위반하여 자식 행을 추가하거나 업데이트할 수 없을 때 발생하는 예외로 데이터베이스에서 외래 키 관계를 갖는 테이블 간의 일관성을 유지하기 위해 발생합니다.

일반적인 해결방법

  • 외래 키 또는 유니크 제약 조건을 확인하고, 데이터베이스 스키마를 수정하여 제약 조건을 준수하도록 조정
  • 작업 전에 데이터베이스 상태를 검사하여 제약 조건을 위배하지 않는지 확인
  • 참조하는 테이블에 레코드를 먼저 추가한 후, 참조받는 테이블에 레코드를 추가

내가 해결한 방법

참조하는 테이블의 레코드를 먼저 삽입한 뒤에 참조받는 테이블의 레코드를 삽입해봤지만 여전히 실패... 그래서....

실제 오류 화면

  1.  DB에 있는 테이블을 한번에 동시에 삭제한다. 
  2.  참조하는 테이블의 레코드를 먼저 insert 한다.
  3.  그 뒤에 참조받는 레코드를 insert 하면 성공.