[SpringBoot] ERROR: duplicate key value violates unique constraint

곽우현·2022년 7월 29일
1

SpringBoot

목록 보기
2/4
post-thumbnail

Spring boot JPA Posgre를 사용할때 프로그래밍으로 데이터를 삽입, 삭제 하지않고 Datagrip으로 강제로 삽입, 삭제 하는 경우가 종종 있다.
이 경우 새로 프로그래밍으로 데이터를 삽입하려 할때 ERROR: duplicate key value violates unique constraint 이 에러가 발생했다.

이는 Postgre에 sequence를 사용할때 sequence객체와 테이블 키값에 불일치로 발생되는 에러라고 한다.

해결 방안

1. 오류가 난 테이블의 최대 키 값을 조회한다.

SELECT MAX(id) FROM table;

2. nextval 함수가 있는 sequence 값을 조회한다.

SELECT NEXTVAL('table_id_seq');

난 이부분에서 JPA가 자동으로 sequence 이름을 주었기에 table_id_seq 대신 hibernate_sequence라고 명시했다.

이 두개 값을 조회했을때 값은 다를것이다. 이것을 맞춰주어야 오류가 해결된다

3. 같은 값으로 맞춘다.

SELECT SETVAL('hibernate_sequence', (SELECT MAX(id) FROM table))
profile
주니어 Java 개발자

0개의 댓글