728x90
반응형
테이블 truncate 중 ORA-02266 에러가 발생하였다.
ora-02266 :unique/primary keys in table referenced by enabled foreign keys
다른 테이블에서 활성화된 외래 키가 참조하는 고유 키 또는 기본 키가 있는 테이블을 참조함.
위 작업을 수행하기 전에 테이블에서 다른 테이블의 외래 키 제약 조건을 비활성하여 해결할 수 있다.
제약 조건을 비활성화하여 검증 단계를 무시하는 것이다.
해당 테이블의 제약조건을 dba_constraints 뷰에서 확인할 수 있다.
SELECT * FROM DBA_CONSTRAINTS
WHERE TABLE_NAME = '테이블명'
AND OWNER = '스키마 명';
외래 키 제약 조건을 비활성화한다.
ALTER TABLE 스키마명.테이블명 DISABLE CONSTRAINT 제약조건명;
이 때 ORA-02297 에러가 발생할 수 있다.
ora-02297 :cannot disable constraint (string.string) - dependencies exist
테이블에 종속된 외래 키가 있기 때문에 제약조건을 DISABLE 할 수 없다.
PK 가 FK로 참조되고있을 때 이런 에러가 발생할 수 있다.
CASCADE 옵션을 사용하여 비활성화가 가능하다.
ALTER TABLE 스키마명.테이블명 DISABLE CONSTRAINT 제약조건명 CASCADE;
CASCADE 옵션은 제약 조건을 삭제할 때 종속된 개체에 대한 작업을 자동으로 수행해준다.DISABLE CASCADE 옵션 사용 시 이 테이블이 참조되고있는 FK도 같이 비활성화가 된다.
이때 다시 제약조건 ENABLE 이 필요한 작업이라면 FK도 함께 ENABLE 해주어야한다.
728x90
반응형
'ORACLE > 문제해결' 카테고리의 다른 글
[ORACLE] 통계정보 생성 시 ORA-20005 Object Statistics Are Locked (Stattype = ALL) (0) | 2024.01.16 |
---|---|
Shared pool이 계속 커지는 현상 - 메모리 누수 문제? (1) | 2023.12.07 |
ora-14404 테이블스페이스 DROP 시 파티션 테이블의 위치 때문에 발생한 오류 (0) | 2023.09.19 |
ORA-00604 ORA-02429 테이블스페이스 DROP 시 발생한 제약조건 오류 (0) | 2023.09.19 |
ORA-28001 비밀번호 만료 (0) | 2023.08.22 |