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));
내가 사용한 명령어이다.
반응형
'프로그래밍 언어 > DB' 카테고리의 다른 글
[SQL] postgresql 숫자 포함한 , 숫자 포함하지 않은 행 추출 (0) | 2022.01.30 |
---|---|
Mysql 명령어 사용해서 사용자 생성/조회/추가/삭제 (0) | 2022.01.19 |
[DBeaver] Mysql - Public Key Retrieval is not allowed (0) | 2022.01.17 |
mysql cli 접속 및 사용자 확인 (0) | 2022.01.17 |
postgresql 현재 db 와 연결된 쿼리 확인하기 (0) | 2021.12.24 |