ORA-02292: 무결성 제약조건(AAA.BBB)이 위배되었습니다- 자식 레코드가 발견되었습니다.
에러 메세지에서 BBB를 소중히 기억한다.
1 2 3 | SELECT CONSTRAINT_NAME, TABLE_NAME, R_CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'BBB'; |
위 SQL문에서 다른건 수정하지않고 BBB만 바꾸어 실행한다.
그럼 TABLE_NAME이 나오는데,
그 테이블을 열어서 잘 찾아보면 삭제하고자 한 테이블의 FK가 보인다.
이럴 때 해결방법
1) 자식레코드가 있는지 검사 후 있을 경우 사용자에게 삭제불가 경고메세지를 띄운다.
1 2 3 | SELECT COUNT(*) FROM TABLE_NAME WHERE FK = 'FK값'; |
위 SQL문으로 자식레코드를 찾을 수 있다.
2) 자식레코드까지 모조리 씨를 말려버린다.
그냥 DELETE 하면 된다.
'실무 짬바 > Oracle' 카테고리의 다른 글
[Oracle] SEQUENCE 맞추기 (0) | 2019.03.14 |
---|---|
[Oracle] 계층형 쿼리 / 순환 쿼리 (0) | 2019.03.14 |
[Oracle] 테이블 정의서 / 명세서 쿼리 (0) | 2019.03.14 |
MyBatis Oracle CLOB 데이터 읽어오기 (0) | 2019.02.21 |
[Oracle] HTML 태그 제거 정규식 (0) | 2019.02.21 |