IT/SQL

[mySQL] AUTO_INCREMENT 값 초기화

김비서 2018. 6. 15. 11:09
728x90


오늘은 mySQL AUTO_INCREMENT 값을 초기화 하는 방법을 소개하려고 합니다.

아래는 [heidiSQL] 화면인데요,

선택할 수 있는 기본값의 종류입니다. 

그 중, 맨 아래에 있는 아이가 오늘 소개할 AUTO_INCREMENT 에요.





mySQL에서 PRIMARY KEY 에 AUTO_INCREMENT 속성을 주어서 키값을 자동으로 증가시킬 수 있습니다. 

행의 값을 UNIQUE 하게 만들기 위한 것인데요,

이전 데이터가 삭제 된다고 해도 한 번 증가된 값은 다시 조정되지 않습니다. 


예를 들어, 100개의 데이터를 넣은 다음, 1개 데이터를 삭제한 후, 다시 넣어보면 인덱스 값은 101이 됩니다.


이 AUTO_INCREMENT 값을 초기화 하려면, 아래와 같은 쿼리를 실행시켜주면 됩니다. 


1
ALTER TABLE [TABLE명] AUTO_INCREMENT = [시작할 값];
cs


물론 이 경우에는, 테이블에 새로 시작할 값보다 높은 값이 있으면 안됩니다. 



또 다른 방법은, 

AUTO_INCREMENT 값을 초기화 후, 테이블 안의 모든 데이터의 ID값을 재조정하는 방법입니다.


1
2
3
ALTER TABLE [테이블명] AUTO_INCREMENT=1;
SET @COUNT = 0;
UPDATE [테이블명] SET [AUTO_INCREMENT 열 이름] = @COUNT:=@COUNT+1;
cs

위 쿼리문은 현재 모든 데이터 ID값을 1부터 재조정하고,
다음 인덱스 값을 [마지막 행번호 + 1] 로 정하는 명령어입니다.


예를 들면, 테이블 `tb_board_item` 의 AUTO_INCREMENT 값을 초기화 후, 모든 데이터의 인덱스를 1부터 조정하려면, 다음과 같습니다.


1
2
3
ALTER TABLE `tb_board_item` AUTO_INCREMENT=1;
SET @COUNT = 0;
UPDATE `tb_board_item` SET board_item_key = @COUNT:=@COUNT+1;
cs


전 테스트 하면서 데이터 넣고 지우고 반복하다 보면 한번씩 쓰게 되더라구요ㅎㅎ

다른 분들에게도 도움이 되면 좋겠습니다


반응형