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
반응형
'Oracle' 카테고리의 다른 글
[Oracle] 테이블명 & 컬럼명 변경하기 (0) | 2021.08.15 |
---|---|
[Oracle] 테이블 컬럼 추가, 수정, 삭제하기 (0) | 2021.08.15 |
[Oracle] ORA-08002 시퀀스 SEQ.currval 은 이 세션에서는 정의되어 있지 않습니다 (0) | 2021.08.07 |
[Oracle] ORA-00947 : 값의 수가 충분하지 않습니다. (0) | 2021.08.01 |
[Oracle] 오라클 에러 발생 시 해결방법 (2) | 2021.08.01 |
댓글