뭉지(moonz)
작은 발자국들의 위대한 여정
뭉지(moonz)
  • All (201)
    • Test Code (4)
    • 백엔드 개발하며 작성한 (26)
      • Spring (17)
      • 데이터베이스 (6)
      • 기억할 내용 (3)
    • 언어 (53)
      • Java (25)
      • node.js (7)
      • Python (21)
    • 클라우드 (6)
    • Algorithm & Data Structure (51)
      • 개념 (15)
      • 문제 풀이 (36)
    • 유용한 모든 것 (16)
    • monologue (7)
      • 업무 노트 (1)
      • 관리 로그 (0)
      • 내 이야기 공책 (6)
    • Project (2)
    • TroubleShooting (8)
    • 지식 (18)
      • Machine Learning (6)
      • Review (7)
      • Web (5)
    • Computer Science (5)

블로그 메뉴

  • 홈
  • 태그

인기 글

최근 글

최근 댓글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
뭉지(moonz)

작은 발자국들의 위대한 여정

[데이터 무결성 위반] nested exception is org.springframework.dao.DataIntegrityViolationException
TroubleShooting

[데이터 무결성 위반] nested exception is org.springframework.dao.DataIntegrityViolationException

2022. 1. 27. 17:26
반응형

발생 에러

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
    'TroubleShooting' 카테고리의 다른 글
    • [Spring Security] permitAll() 적용되지 않는 이슈 해결
    • [JPA] 쿼리 생성하는 메서드명의 keyword를 체크하자.
    • MySQL 삭제 후 재설치 에러 : The older version of MYSQL Installer
    • [mustache 에러] com.samskivert.mustache.MustacheParseException: Section close tag with mismatched open tag 'if' != 'if sessionScope.principal'
    뭉지(moonz)
    뭉지(moonz)
    제가 깨달은 것을 정리하는 공간입니다. 🧡

    티스토리툴바