본문 바로가기
백엔드/DB

[postgresql] duplicated key value violates unique constraint

by 작은소행성 2022. 1. 18.

 

 

PostgreSQL 은 Sequence로 인덱스를 관리하는데 

이것을 프로그램으로 사용했다가 데이터 베이스에 넣어서 사용하면 sequence object 값이 다르게 되어 생기는 문제이다. 

이런 경우에는 테이블 내용을 다 삭제해주거나 아래 쿼리문을 사용해서 오류를 해결한다. 

 

id 의 최대값과 sequece 의 값이 동일한지 확인한다.

select max(id) from 테이블이름.시퀀스이름  ;
select nextval('테이블이름.시퀀스이름');

 

동일하지 않다면 아래 명령어로 값을 맞춰준다 

select setval('테이블이름.시퀀스이름', (eslect MAX(id) from 테이블이름.시퀀스이름));
select setval('table.seq_table', (select max(id) from table.seq_table));

내가 사용한 명령어이다. 

 

 

 

반응형