[postgresql] id _ autoincrement 초기화!

HOU·2023년 12월 3일

backend

목록 보기
8/10

개요

postgreSQL에서 primarykeyautoincrement 를 설정해놓으면 데이터를 추가할 때 다 1씩 추가됩니다. 그리고 다시 삭제 하면 그 이후의 id 가 추가되는데 이 부분을 없애는 방법이 궁금했습니다. 테스트하는데 계속해서 삭제하고 저장을 하다보니 id가 계속 늘어나서 깔끔하게 보이지 않았다. 그래서 autoincrement 초기화에 대해서 알아보자!

해결법

크게 두가지 방법이 있는거 같다. sequnce 재설정과 데이터 삭제 후 재시작 하는 방법이다.

Sequnce 재설정

  • 해당 테이블의 시퀀스를 확인합니다. 시퀀스는 auto-increment 값을 생성하는데 사용되는 객체입니다.
  • 아래의 쿼리를 사용하여 시퀀스를 현재 값보다 작은 값으로 재설정합니다. 여기서 table_name은 해당 테이블의 이름, column_nameauto-increment 열의 이름입니다.

Query

아래 쿼리 입력하시면 1부터 다시 시작이 됩니다.

ALTER SEQUENCE table_name_column_name_seq RESTART WITH 1;

해당 table sequnce 확인 방법

DBeaver 기준으로 하였습니다.
table -> table_name -> Dependencies -> sequnece 가 존재합니다. 그것을 보고 확인하시면 됩니다.
sequence 확인

Data 초기화 후 진행 (필자는 이 방법으로 진행)

  • 해당 테이블의 모든 데이터를 삭제합니다.
  • 아래의 쿼리를 사용하여 시퀀스를 재시작합니다. 여기서 table_name은 해당 테이블의 이름, column_name은 auto-increment 열의 이름입니다.

Query

TRUNCATE TABLE table_name;
ALTER SEQUENCE table_name_column_name_seq RESTART WITH 1;

결론

항상 sequence를 초기화 시킬때는 신중하게 진행해야한다. 나는 개인 공부용으로 진행하다보니 편하게 건드렸지만, 운영을 하거나 할 때는 정말 조심해서 건드려야 한다고 하니 항상 잘 확인하면서 진행해야겠다.

profile
하루 한 걸음 성장하는 개발자

0개의 댓글