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

Q0. 개요

ORA- 로 표기되는 키워드는 오라클 에러들이다.

ORA-00001: 유일성(무결성) 제약 조건에 위배됩니다. (unique constraint violated)

이 에러는 이미 존재하는 PK 데이터를 삽입하려고 할때 발생된다.

 

Q1. 여기서 PK란

Primary Key란 데이터를 식별할 수 있는 값이라고 할 수 있다.
그렇다면 PrimaryKey와 Unique의 차이점은 뭘까?

 

추가적으로 현재 스키마에서 기본 키와 관련된 정보를 확인하기 위해 아래의 참고 쿼리를 확인하면 된다.

SELECT /*기본키 이름, 구성 컬럼, 인덱스 이름, 인덱스의 테이블 스페이스를 확인하는 SQL*/ 
	C.TABLE_NAME 
	, C.CONSTRAINT_NAME
  	, C.STATUS AS STATUS
  	, CC.POSITION
  	, CC.COLUMN_NAME
FROM USER_INDEXES IX
  	, USER_CONSTRAINTS C
  	, USER_CONS_COLUMNS CC
WHERE 1=1
	--AND IX.TABLE_NAME IN ('테이블명칭') 
  	AND C.CONSTRAINT_TYPE = 'P'
  	AND IX.INDEX_NAME = C.INDEX_NAME 
  	AND C.CONSTRAINT_NAME = CC.CONSTRAINT_NAME;
  
 
 SELECT /*기본 테이블 스페이스의 현재 값*/
 	USERNAME
	, DEFAULT_TABLESPACE 
FROM USER_USERS;

 

Q2. 결론적으로

중복될 수 없는 기본키의 속성 때문에,

이를 해결법으로는 중복되지 않도록 비즈니스 로직을 다시 확인해서 작성해야한다.