본문 바로가기
Oracle

[Oracle] ORA-00001 : 유일성(무결성) 제약조건에 위배됩니다

by 상후 2021. 8. 7.
728x90
반응형

ORA-00001 : 유일성(무결성) 제약조건에 위배됩니다. (해결방법)

ORA-00001: unique constraint violated

발생 원인
UPDATE 및 INSERT 구문 실행 시 중복되는 기본키 값을 삽입하려 할 때 발생하는 에러입니다.
즉, 테이블 내 기본키(PK)의 데이터는 중복될 수 없습니다. 

출처 : Oracle Docs

ORA-00001 Oracle Docs 링크

 

테스트 케이스

 

NO NAME
1001 A
1002 B
1003 C

TEMP 테이블의 PK는 NO 라고 가정합니다.

 

-- ORA-00001 발생!
INSERT INTO TEMP(NO, NAME) VALUES(1001, 'D');

 

PK인 NO에 1001 이라는 데이터가 존재하는데 같은 값으로 데이터를 삽입하려해서 발생

 

해결 방법
1. 기본키에 해당하는 이미 존재하는 데이터와 중복을 피해서 INSERT 및 UPDATE
2. 해당 컬럼 UNIQUE 제약조건 삭제 

 

-- 중복되지 않는 값으로 변경
INSERT INTO TEMP(NO, NAME) VALUES(1004, 'D');

 

제약조건을 삭제하는 방법도 있지만, 테이블의 설계를 바꾸는 상황은 많지 않다고 생각합니다..

그러므로 해당 에러가 발생했다면 대부분 1번 케이스로 해결할 수 있을거라 생각합니다.

 

 

 

 

 

728x90
반응형

댓글