반응형

 

 

 

 

 

🚫 ORA-02292: integrity constraint (USER.CONSTRAINT) violated - child record found

 

 

 

1️⃣ 원인

ORA-02292 무결성 제약조건 위반은 삭제대상 테이블의 데이터가 다른 테이블 데이터의 FK값일 경우에 발생한다. 즉, 부모테이블(삭제대상데이터) 를 참조하는 자식테이블의 데이터가 존재하기 때문에 삭제 할 수 없다.

 

 

2️⃣ 해결

부모 테이블의 데이터를 삭제하기 전에 해당 데이터를 참조하는 자식테이블의 데이터를 제거하면 된다.

 

참조하는 테이블이 무엇인지 쉽게 찾는 방법은 에러가 발생했을때 제약조건의 이름(XXX)을 아래 쿼리의 where절에 넣어준 후 실행시키면 된다.

 

▶ ORA-02292: 무결성 제약조건(user.XXX)이 위배되었습니다- 자식 레코드가 발견되었습니다

 

select
    constraint_name,
    table_name,
    r_constraint_name
from
    user_constraints
where
    constraint_name = 'XXX';

 

또한 부모테이블의 데이터 제거시 자식 테이블 데이터도 자동으로 제거되는 "ON DELETE CASCADE" 를 테이블 생성시 넣어주는것도 하나의 방법이다.

 

 

 

 

 

 

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기