기술 · 실용 가이드
PostgreSQL 생성 ID 중복? setval 전에 시퀀스 불일치를 증명하세요
제약 조건과 충돌 값을 읽고 키 생성자와 소유 시퀀스를 확인한 뒤 writer를 멈추고 좁게 복구하세요. 비즈니스 키 중복이나 경쟁은 다른 수정이 필요합니다.

중복 키 오류는 제약 값이 이미 있음을 증명할 뿐 기본 키 시퀀스 오류를 증명하지 않습니다.
제약과 값을 보존하고 생성자를 확인한 뒤 통제된 writer 조건에서 테이블과 시퀀스를 비교하세요.
제약과 충돌 값 보존
전체 오류, 제약, DETAIL, 문장 형태를 저장하세요. 비즈니스 키 중복은 시퀀스로 고칠 수 없습니다.
ID 명시 여부와 import, seed, restore, failover 변화를 기록합니다.
생성 메커니즘 증명
default/identity를 확인하고 pg_get_serial_sequence로 실제 소유 시퀀스를 찾습니다.
앱 제공 키나 복합 제약이면 retry, idempotency, 원본 데이터를 조사합니다.
진행 없이 상태 비교
MAX(id), last_value, is_called를 비교하고 검사 목적으로 nextval을 호출하지 마세요.
start, increment, 범위, cycle, 빈 테이블을 먼저 확인합니다.
writer 중지 후 표적 복구
유지보수 창에서 writer를 멈추세요. setval은 즉시 보이고 rollback되지 않습니다.
증명한 시퀀스만 복구하고 빈 테이블은 실제 start와 is_called=false를 사용합니다.
검증과 근본 원인 종료
ID를 생략한 통제 insert를 한 번 수행하고 새 키와 행을 확인합니다.
명시 ID load, replication, failover를 수정하고 재발 시 setval 반복을 중단합니다.
