[Oracle] 오라클 ORA-02292 무결성 제약조건 자식레코드가 발견되었습니다 처리내용
개요
컬럼 데이터를 변경하려 시도하던 도중 에러가 발생.
ORA-02292 무결성 제약조건 (SCHEMA.FK_NAME)이 위배되었습니다 - 자식 레코드가 발견되었습니다.
예전에 본 적이 있기도 한데 오랜만에 봐서 기억이 잘 안나서 구글링하여 처리했어요.
해당 에러는 부모의 데이터를 자식이 참조하고 있을 경우 표출됩니다.
1. 제약조건 검색
SELECT TABLE_NAME
FROM USER_CONSTRAINTS
WHERE CONSTRAINT_NAME = 'FK_NAME';
TABLE_NAME 검색 후 테이블설계 Script를 확인하여 어떤 컬럼에 FK가 생성되었나 확인.
2. 자식레코드 제거 & 데이터 수정
FK 컬럼에서 수정하고자하는 부모의 데이터를 가지고 있는 데이터가 있는지 확인.
저 같은경우는 한 테이블의 상위레벨 컬럼이 FK로 지정되어있어서 처음에 보는데 조금 혼동이 왔었어요.
code | upper_code |
34310 | 00 |
3431011 | 34310 |
위 테이블을 보면 code의 34310이란 데이터를 2번째 로우 upper_code에서 참조하고 있습니다.
34310을 참조하고있는 모든 데이터를 제거하거나 다른 값으로 UPDATE 시 code의 34310의 수정이 가능합니다.
3. 처리결과
34310 코드를 참조하고있는 자식레코드를 모두 제거 or 수정후 code 데이터 수정 완료.
좋아요♥는 블로그 운영에 큰 도움이 됩니다.
'오라클 DB' 카테고리의 다른 글
VsCode Git Bash 터미널 사용 세팅 [React 리액트 Yarn] (0) | 2022.12.21 |
---|---|
[Oracle] 오라클 그룹별 랭크 순위 [RANK OVER PARTITION BY | DENSE_RANK 차이] (0) | 2022.08.01 |
[Oracle] 오라클 다중 Replace의 대안 [Replace 여러개 방법] (0) | 2022.07.19 |
[Oracle] 오라클 잘못된 기본 키입니다 에러 [ORA-02437 을 검증할 수 없습니다] (0) | 2022.07.13 |
[Oracle] 오라클 TRUNCATE TABLE의 활용 [ORACLE 테이블 조회속도 향상] (1) | 2022.06.27 |