Oracle 에러 ORA-00001
org.springframework.dao.DuplicateKeyException:
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)에 위배됩니다