기본키를 새로 추가하거나, 기존의 기본키를 삭제하고 싶을 때 ALTER TABLE 명령어를 사용할 수 있습니다. 하지만, 이때 ORA-02441: Cannot drop nonexistent primary key 오류가 발생하는 경우가 있습니다. 기본키를 바꾸는 것이 그렇게 자주 발생하는 이벤트가 아니다 보니 해당 오류를 보는 것은 아마 쉽지 않을 것입니다. 이번 주제는 해당 오류를 해결하는 방법에 대한 안내입니다.
ORA-02441: Cannot drop nonexistent primary key
드랍 프라이머리 키 명령어를 실행하였으나 오류가 발생하였습니다. 사유는 간단하게 존재하지 않는 기본키를 드랍할 수 없다고 합니다.
ALTER TABLE USER_NAME.TABLE_NAME DROP PRIMARY KEY CASCADE;
ERROR at line 1:
ORA-02441: Cannot drop nonexistent primary key
각 회사마다 코딩 컨벤션이 있을 것입니다. 코딩 컨벤션은 개발표준이라고 보통 해석합니다. 예를 들면 우리는 기본키에 대한 제약조건을 "PK_ 로 시작하도록 이름을 설정하겠다."와 같은 것입니다. 이때 PK로 시작하는 인덱스를 보고 프라이머리키가 있다고 판단하여 해당과 같은 현상이 발생할 수 있습니다.
인덱스를 한 번 더 점검하거나, 테이블의 제약조건을 다시 확인해 주세요. 기본키가 실제로 없을 가능성이 있거나, 테이블 이름을 잘못 입력하였을 가능성이 있습니다. 제약조건이 존재하지 않는다면, 기본키가 없을 가능성이 높습니다.
SELECT *
FROM ALL_CONSTRAINTS
WHERE OWNER = 'USER_NAME' AND TABLE_NAME = 'TABLE_NAME';
no rows selected