MySQL

[MySQL] AUTO_INCREMENT 초기화하는 방법

옐리yelly 2023. 4. 27. 16:50

 

이번 포스팅은 근본적인 문제 해결은 아니지만, PK의 값을 초기화하고 1부터 연속적인 수로 바꾸는 방법에 대한 글입니다.

서론

보통 스키마를 구성할 때, PK에 `auto_increment`를 설정하는 경우가 많습니다.

`auto_increment`는 편리함을 제공하지만 `INSERT IGNORE 문`을 사용했을 때, 또는 `UPSERT 문`을 사용했을 때 따라오는 `ON DUPLICATE KEY UPDATE` 에 의해 중복 데이터를 INSERT 하지 못함에도 PK 값은 `+1 씩 증가`하게 됩니다.

 

auto_increment 초기화 쿼리

ALTER TABLE [테이블] AUTO_INCREMENT=1; -- [테이블]의 AUTO_INCREMENT를 1로 초기화한다.
SET @CNT = 0;  -- @CNT 변수의 값을 0으로 초기화한다.
UPDATE [테이블]
SET [테이블의 PK] = @CNT:=@CNT+1;  -- [테이블의 PK]를 위에서 저장한 @CNT 값을 이용해 +1 씩 증가시킨다.

 

위의 쿼리를 사용하면 PK를 1부터 연속적인 숫자로 UPDATE 하여 쓸 수 있습니다.

 

읽어주셔서 감사합니다.