반응형
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는 다음 할당될 값이 최대값 바로 다음 값이 되도록 설정
반응형
'Chapter01 > Sping boot' 카테고리의 다른 글
| [ Spring Boot ] @SuppressWarnings( "unchecked" ) (2) | 2025.08.27 |
|---|---|
| [ Spring boot ] Generic (0) | 2025.08.26 |
| [ 보안 취약점 조치 ] Clickjacking 공격 (0) | 2025.06.26 |
| [Spring boot ] Load balancer health Check (0) | 2025.06.13 |
| [ 2Factor 인증] Google Authenticator 인증 java코드 (0) | 2025.04.25 |