ORA-00001: Unique constraint violated
Oracle의미
삽입 또는 갱신되는 행이 UNIQUE 또는 PRIMARY KEY 제약 조건을 위반한다. 즉, 동일한 값이 이미 존재한다.
원인
동일한 키 값으로 행을 다시 삽입하거나, 고유해야 하는 컬럼에 중복 데이터를 입력하거나, 복제/재실행 중 같은 레코드를 두 번 처리한 경우.
해결 방법
오류 메시지의 제약 조건 이름으로 위반된 컬럼을 찾는다: SELECT column_name FROM all_cons_columns WHERE constraint_name = 'CONSTRAINT_NAME'. 중복 데이터는 GROUP BY ... HAVING COUNT(*) > 1로 찾는다. 애플리케이션에서는 기존 레코드에 대해 INSERT 대신 UPDATE 또는 MERGE를 사용한다. 시퀀스 값이 뒤처졌다면 ALTER SEQUENCE로 앞당긴다.