본문으로 바로가기

  

 

이번 글에서는 ORA-00001 unique constraint violated 에러 해결 방법에 대하여 알아보도록 하겠습니다.

 

ORA-00001: unique constraint violated

ORA-00001: 무결성 제약 조건에 위배됩니다

 

 

데이터를 추가하다가 아래와 같은 에러가 발생하였습니다.

 

 

예제를 통하여 에러가 발생한 이유와 해결 방법에 대하여 알아보도록 하겠습니다.

아래의 쿼리는 DEPT 테이블에 값을 추가하는 예제입니다.

 

위의 쿼리를 실행하니 ORA-00001: unique constraint violated 에러가 발생하였습니다.

 

이 에러가 발생한 이유는 삽입하려는 값이 이미 테이블의 기본키이면서 동일한 값이 존재해서입니다.

즉, 기본키 값은 중복될 수 없습니다. 

 

 

아래의 조회 화면을 보니 DEPT 테이블의 기본키 값으로 DEPTNO가 있습니다.

 

 

또한 DEPT 테이블의 DEPTNO 컬럼에 55 값이 들어있는 것이 있습니다.

그렇기 때문에 예제 쿼리에서 ORA-00001: unique constraint violated 에러가 발생한 것입니다. 

 

기본 키는 NULL일 수 없고, 중복될 수 없는 고유의 값입니다.

따라서, 아까 삽입하려 했던 DEPTNO컬럼의 값이 이미 테이블에 같은 값이 있다면 삽입은 불가능합니다. 

 

 

해결 방법

1. 기본키와 중복되지 않는 새로운 값을 삽입하는 방법

2. 기본 키값은 내버려두고, UPDATE 문으로 키 값을 WHERE절에 걸어서 값들을 수정하는 수밖에 없습니다.

     

해결 방법 2번에 대해 이해가 잘 안 될 수 있으니 예제로 확인해 보겠습니다.

아래의 쿼리는 DEPT 테이블의 DEPTNO가 55인 값인 것의 DNAME을 '바꿀값'으로 바꾸는 예제입니다.

 

혹시라도 이해가 잘 안 되신다면 댓글 남겨주세요.

이상으로 포스팅을 마치겠습니다. 감사합니다.

 

 

Reference

UPDATE문 개념 및 예제