[ORACLE] 오라클 ORA-00001: 무결성 제약 조건에 위배됩니다 원인해결

Oracle 에러 ORA-00001

org.springframework.dao.DuplicateKeyException:

### Errror updating database

Cause: java.sql.SQLIntegrityConstraintViolatoinException:

ORA-00001 : 무결성 제약조건(User.USER_PK)에 위배됩니다.

 

DB 작업을 하다보면 종종 나는 오류입니다.

 

예제를 보여드리지요. 아래 테이블처럼

select col01, col02 From temp1018

COL01 컬럼이 PK 로 지정되어있습니다.

COL01 값이 1019는 성춘향입니다.

 

아래와 같이 COL01 컬럼이 PK인데 아래와 같이 1019 값을 넣는경우 

INSERT INTO temp1018(COL01,COL02)
	 VALUES (1019,'이몽룡');

 

SQL []; ORA-00001: 무결성 제약 조건(USER.USER_PK)에 위배됩니다

라고 에러가 발생합니다.

 

이와 같은 에러가 발생하는 경우

UK, PK, FK등의 제약조건이 있는경우를 확인해봐야 합니다.

테이블에 단 하나만 존재해야하는 key가 중복해서 들어갈때
생기는 에러이므로 테이블에 key값이 중복되지 않게 해야 합니다.

 

에러 전체 코드 확인.

org.springframework.dao.DuplicateKeyException: 
### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(USER.USER_PK)에 위배됩니다

### The error may involve kr.co.shop.lib.bl.service.theshop.user.insertUsertTb-Inline
### The error occurred while setting parameters

; SQL []; ORA-00001: 무결성 제약 조건(USER.USER_PK)에 위배됩니다
; nested exception is java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(USER.USER_PK)에 위배됩니다
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
Caused by: java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 무결성 제약 조건(USER.USER_PK)에 위배됩니다

댓글

Designed by JB FACTORY