728x90
반응형
PostgreSQL에서 int pk를 auto increment (숫자 자동 증가)로 부여하는 경우,
종종 존재하는 id로 row를 추가하려는 경우가 있다.
예시 오류
SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "pages_pkey"
DETAIL: Key (id)=(4) already exists.
-> id auto increment를 마지막 int부터 다시 시작하도록 설정
psql shell을 진입 - 해당 데이터 베이스 사용 (\c database_name)
1.현재 sequence value를 확인하자
(참고: table 명이 pages 인 경우이다)
SELECT last_value, is_called FROM pages_id_seq;
2. sequence를 현재 존재하는 최대 값의 id부터 시작하도록 sql query 작성
SELECT setval('pages_id_seq', (SELECT COALESCE(MAX(id), 0) FROM pages));
-> 1의 명령어로 변경사항 확인
참고 블로그:
https://www.vincentschmalbach.com/postgresql-sequence-error-manual-inserts-disrupt-auto-increment/
728x90
반응형
'Database > PostgreSQL' 카테고리의 다른 글
PostgreSQL: password 안전하게 사용하기 # PGPASSWORD # .pgpass # .env (1) | 2024.12.03 |
---|---|
PostgreSQL: query 기록하고 보기 - log파일로 보기 # /var/log/postgresql (0) | 2024.01.09 |
PostgreSQL: query 기록하고 보기 - table(view)로 보기 # ORM # raw query # extension # pg_stat_statements (0) | 2024.01.09 |
DB Table 모두 지우고 리셋 # schema (0) | 2023.03.05 |
PostgreSQL install ~ begin with Django: Linux(Ubuntu) (0) | 2022.12.30 |