postgreSQL에서 primarykey 에 autoincrement 를 설정해놓으면 데이터를 추가할 때 다 1씩 추가됩니다. 그리고 다시 삭제 하면 그 이후의 id 가 추가되는데 이 부분을 없애는 방법이 궁금했습니다. 테스트하는데 계속해서 삭제하고 저장을 하다보니 id가 계속 늘어나서 깔끔하게 보이지 않았다. 그래서 autoincrement 초기화에 대해서 알아보자!
크게 두가지 방법이 있는거 같다. sequnce 재설정과 데이터 삭제 후 재시작 하는 방법이다.
- 해당 테이블의 시퀀스를 확인합니다. 시퀀스는
auto-increment값을 생성하는데 사용되는 객체입니다.- 아래의 쿼리를 사용하여 시퀀스를 현재 값보다 작은 값으로 재설정합니다. 여기서
table_name은 해당 테이블의 이름,column_name은auto-increment열의 이름입니다.
아래 쿼리 입력하시면 1부터 다시 시작이 됩니다.
ALTER SEQUENCE table_name_column_name_seq RESTART WITH 1;
DBeaver 기준으로 하였습니다.
table -> table_name -> Dependencies -> sequnece 가 존재합니다. 그것을 보고 확인하시면 됩니다.

- 해당 테이블의 모든 데이터를 삭제합니다.
- 아래의 쿼리를 사용하여 시퀀스를 재시작합니다. 여기서 table_name은 해당 테이블의 이름, column_name은 auto-increment 열의 이름입니다.
TRUNCATE TABLE table_name;
ALTER SEQUENCE table_name_column_name_seq RESTART WITH 1;
항상 sequence를 초기화 시킬때는 신중하게 진행해야한다. 나는 개인 공부용으로 진행하다보니 편하게 건드렸지만, 운영을 하거나 할 때는 정말 조심해서 건드려야 한다고 하니 항상 잘 확인하면서 진행해야겠다.