ORA-02449: 외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다 해결하기 (ORA-02449: unique/primary keys in table referenced by foreign keys)

ORA-02449: 외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다 원인과 해결방법에 대해 안내해드리겠습니다. ORA-02449의 발생 원인은 삭제하려는 테이블의 기본키(또는 고유키)가 참조 테이블의 외래 키로 설정이 되어 있기 때문인데, 이게 무슨 말인지 다음을 통해 알아보도록 하겠습니다.

기본키

기본키

기본키는 테이블에서 유일성과 최소성을 모두 만족하는 키를 뜻하며, 해당 레코드를 테이블에서 식별 가능하도록 합니다.

사원정보(EMP) 테이블에서는 모든 사원이 고유한 사원번호를 부여하는 규칙으로 인해 사원번호를 기본키로 사용할 수 있습니다.

외래키

외래키

외래키는 하나의 테이블에 있는 필드 중에, 다른 테이블의 레코드를 식별할 수 있는 키를 뜻합니다.

ORA-02449: 외래 키에 의해 참조되는 고유/기본 키가 테이블에 있습니다 해결하기

ORA-02449 오류를 해결하기 위해서는 해당 명령어를 실행하기 이전에 참조되는 테이블의 외래키제약조건을 먼저 삭제하세요. 또는 CASCADE 절을 사용하여 연쇄적으로 삭제하는 방법이 있습니다.

다음은 CASCADE를 이용하여 기본키와 연관된 외래키 등을 모두 삭제하는 명령어입니다.

--기본키 삭제

ALTER TABLE DEPT DROP PRIMARY KEY CASCADE;

--테이블 삭제

DROP TABLE DEPT CASCADE CONSTRAINTS;

다음은 해당 참조 테이블에 어떠한 제약조건이 포함되어 있는지 확인하는 방법입니다.

SELECT *
  FROM USER_CONSTRAINTS
 WHERE TABLE_NAME = 'TABLE_NAME'

댓글