반응형
발생 에러
Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement
DataIntegrityViolationException, 즉 데이터 무결성 (Data Integrity) 위반 문제(Violation Exception)가 발생했다.
에러 원인
Review id를 외래키로 참조하고 있는 Comment 테이블이 있기 때문에 Review 데이터를 제거하려할 때 이를 참조하고있는 Comment 테이블의 외래키 필드 Review_id의 무결성에 침해되므로 문제가 발생한다. (외래키의 무결성 제약조건에 위배)
* 무결성 : 데이터의 정확성과 일관성을 유지하고 보증하는 것
해결
키값이 삭제되면 이를 참조하고 있는 컬럼도 같이 삭제될 수 있도록 기존 제약조건을 제거 후 새롭게 추가해야 한다.
+) 제약조건 명을 모른다면 아래 명령어를 통해 찾을 수 있다.
select * from information_schema.table_constraints;
1. 기존 제약 조건 삭제
ALTER TABLE {참조하고있는 테이블명} DROP FOREIGN KEY {제약조건 명};
2. 새 제약 조건 추가
ALTER TABLE {참조하고있는 테이블명} ADD CONSTRAINT {제약조건 명} FOREIGN KEY ({참조할 칼럼 명}) REFERENCES {참조할 테이블 명} ({pk 칼럼명}) ON DELETE CASCADE;
예)
반응형
'TroubleShooting' 카테고리의 다른 글
[Spring Security] permitAll() 적용되지 않는 이슈 해결 (0) | 2024.05.21 |
---|---|
[JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자. (0) | 2022.06.27 |
MySQL 삭제 후 재설치 에러 : The older version of MYSQL Installer (4) | 2021.12.24 |
[mustache 에러] com.samskivert.mustache.MustacheParseException: Section close tag with mismatched open tag 'if' != 'if sessionScope.principal' (0) | 2021.12.01 |
toString() 을 재정의하는 것을 잊지말자 (0) | 2021.11.23 |