개발일지/2023_한이음
[개발]🚨ERROR -java.sql.SQLIntegrityConstraintViolationException: Cannot add or update a child row:
기억지기 개발자
2023. 7. 6. 15:45
외래 키 제약 조건을 위반하여 자식 행을 추가하거나 업데이트할 수 없을 때 발생하는 예외로 데이터베이스에서 외래 키 관계를 갖는 테이블 간의 일관성을 유지하기 위해 발생합니다.
일반적인 해결방법
- 외래 키 또는 유니크 제약 조건을 확인하고, 데이터베이스 스키마를 수정하여 제약 조건을 준수하도록 조정
- 작업 전에 데이터베이스 상태를 검사하여 제약 조건을 위배하지 않는지 확인
- 참조하는 테이블에 레코드를 먼저 추가한 후, 참조받는 테이블에 레코드를 추가
내가 해결한 방법
참조하는 테이블의 레코드를 먼저 삽입한 뒤에 참조받는 테이블의 레코드를 삽입해봤지만 여전히 실패... 그래서....
- DB에 있는 테이블을 한번에 동시에 삭제한다.
- 참조하는 테이블의 레코드를 먼저 insert 한다.
- 그 뒤에 참조받는 레코드를 insert 하면 성공.
