Oracle
[Oracle] ORA-00001 : 유일성(무결성) 제약조건에 위배됩니다
상후
2021. 8. 7. 00:50
728x90
반응형
ORA-00001 : 유일성(무결성) 제약조건에 위배됩니다. (해결방법)
ORA-00001: unique constraint violated
발생 원인
UPDATE 및 INSERT 구문 실행 시 중복되는 기본키 값을 삽입하려 할 때 발생하는 에러입니다.
즉, 테이블 내 기본키(PK)의 데이터는 중복될 수 없습니다.
테스트 케이스
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
반응형