스프링부트에서 API를 작업중 데이터 등록하는 과정에서 리턴값이 정상적으로 들어오지 않아서 에러 로그를 확인하여보니 아래와 같은 에러 메시지를 확인 할 수 있었다.
ERROR: duplicate key value violates unique constraint "admin_equip_pkey"
스프링부트 JPA Postgre를 사용할때 프로그램상에서 데이터를 삽입하지 않고 데이터베이스에 강제로 삽입하는 경우가 있다.
아마도 내가 작업하는 시점에 다른 개발자가 데이터를 넣은 모양이다.(실제로 데이터 존재가 확인됨😅)
이 경우 API를 통해서 데이터를 삽입하려고 할때 위와 같이 "ERROR: duplicate key value violates unique constraint" 에러가 발생 할 수 있다.
이는 PostgreSql에 시퀀스를 사용할때 시퀀스 객체와 테이블 키값이 불일치로 발생되는 에러라고 한다.
SELECT MAX(id)
FROM table;
SELECT nextval('table_id_seq');
SELECT setval('table_id_seq', (SELECT MAX(id) FROM table));
끝!