Chapter01/Sping boot
[ PostgreSQL ] ERROR: duplicate key value violates unique constraint
EmmaDev_v
2025. 11. 11. 11:37
반응형
ERROR: duplicate key value violates unique constraint "pk_mng_mbr"
Detail: Key (mbr_sn)=(31067) already exists.
이런 에러가 발생했다.
현재 값(last_value)이 31067로,
실제 테이블의 최대 mbr_sn 값(31110)보다 작아 시퀀스가 뒤처진 상태입니다.
이에 따라 신규 데이터 등록 시 중복 키 오류가 발생하고 있습니다.
mbr_sn는 회원일련번호이고, 테이블 내에서 자동으로 증가하는 시퀀스 넘버라 key 역할이다.
데이터를 삽입할 때 테이블에 존재하는 시퀀스에 +1 해서 자동생성인데
무슨일인지 중복된 값이 있다고함
열댓명이 다 만지고 있으니
누가 어떻게해서 생긴 이슈인지는 찾을수없었고,
시퀀스를 현재 테이블의 최대값으로 동기화해야함
SELECT setval('tb_user_mbr_mbr_sn_seq', (SELECT MAX(mbr_sn) FROM tb_user_mbr), true);
SELECT MAX(mbr_sn) FROM tb_user_mbr)
=> tb_user_mbr 테이블에서 mbr_sn의 최대값 조회
SELECT setval('tb_user_mbr_mbr_sn_seq', ..., true)
=> PostgreSQL의 setval 함수로 tb_user_mbr_mbr_sn_seq라는 시퀀스값을 위 쿼리에서 구한 최대값으로 설정.
세 번째 인자인 true는 다음 할당될 값이 최대값 바로 다음 값이 되도록 설정
반응형