23505: unique_violation
PostgreSQL의미
삽입 또는 갱신된 행이 UNIQUE 제약 조건 또는 PRIMARY KEY를 위반한다. 동일한 값이 이미 테이블에 존재한다.
원인
같은 고유 키로 다시 삽입, 고유 컬럼에 중복 데이터 입력, 수동 삽입으로 시퀀스 값이 뒤처짐, 또는 두 개의 동시 요청이 같은 키를 삽입.
해결 방법
오류 상세의 제약 조건 이름과 키 값이 어떤 행이 충돌하는지 보여 준다. 기존 행을 갱신하려면 INSERT ... ON CONFLICT (my_column) DO UPDATE 또는 DO NOTHING을 사용한다. 중복을 찾는다: SELECT my_column, COUNT(*) FROM my_table GROUP BY my_column HAVING COUNT(*) > 1. 시퀀스가 뒤처졌다면: SELECT setval('seq_name', (SELECT MAX(id) FROM my_table)).