MySQL에서 AUTO_INCREMENT 값 변경하기
MySQL에서는 ALTER 명령어를 사용하여 AUTO_INCREMENT의 현재 값을 손쉽게 변경할 수 있습니다. 이 기능은 특정 숫자부터 시퀀스를 다시 시작하거나, 테스트 데이터를 삽입한 후 실제 운영 환경에 맞는 번호부터 시작하고 싶을 때 유용하게 활용됩니다.
AUTO_INCREMENT 값 변경 문법
AUTO_INCREMENT 값을 변경하는 기본 문법은 다음과 같습니다.
ALTER TABLE 테이블명 AUTO_INCREMENT = 원하는값;
예제 테이블 생성
문법을 실제로 이해하기 위해 예제 테이블을 먼저 생성해 보겠습니다. 아래 쿼리로 테이블을 만들 수 있습니다.
mysql> create table changeCurrentAutoIncrementValue -> ( -> CurrentCount int auto_increment, -> PRIMARY KEY(CurrentCount) -> ); Query OK, 0 rows affected (0.60 sec)
레코드 삽입 및 초기 값 확인
테이블에 레코드를 삽입해 보겠습니다. AUTO_INCREMENT는 기본적으로 1부터 시작하여 1씩 증가합니다.
mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.20 sec) mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.15 sec) mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.11 sec) mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.12 sec)
삽입된 모든 레코드를 조회하여 값이 어디서부터 시작되는지 확인해 보겠습니다.
mysql> select *from changeCurrentAutoIncrementValue;
실행 결과는 다음과 같습니다.
+--------------+ | CurrentCount | +--------------+ | 1 | | 2 | | 3 | | 4 | +--------------+ 4 rows in set (0.00 sec)
위 출력 결과를 보면 AUTO_INCREMENT가 1부터 시작했으며, 이후 값들은 이전 값에 1씩 더해지며 순차적으로 생성된 것을 확인할 수 있습니다.
AUTO_INCREMENT 값 300으로 변경
이제 현재 AUTO_INCREMENT 값을 변경하는 쿼리를 실행해 보겠습니다.
mysql> alter table changeCurrentAutoIncrementValue auto_increment = 300; Query OK, 0 rows affected (0.27 sec) Records: 0 Duplicates: 0 Warnings: 0
위 쿼리를 통해 AUTO_INCREMENT 값이 성공적으로 변경되었습니다. 이제 새로운 값은 300부터 시작되며, 기존 값들(1~4) 뒤에 추가됩니다.
변경 후 새 레코드 삽입
변경된 설정이 정상적으로 적용되었는지 확인하기 위해 다시 레코드를 삽입해 보겠습니다.
mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.15 sec) mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.17 sec) mysql> insert into changeCurrentAutoIncrementValue values(); Query OK, 1 row affected (0.15 sec)
테이블의 전체 레코드를 조회하여 결과를 확인합니다.
mysql> select *from changeCurrentAutoIncrementValue;
실행 결과는 다음과 같습니다.
+--------------+ | CurrentCount | +--------------+ | 1 | | 2 | | 3 | | 4 | | 300 | | 301 | | 302 | +--------------+ 7 rows in set (0.00 sec)
출력 결과를 보면 AUTO_INCREMENT 값을 변경한 후 새로 삽입된 데이터가 300부터 시작하여 301, 302 순으로 증가하는 것을 확인할 수 있습니다.
주의사항
AUTO_INCREMENT 값을 변경할 때 몇 가지 주의할 점이 있습니다.
첫째, 지정하려는 값이 현재 컬럼의 최대값보다 작으면 무시됩니다. 예를 들어 최대값이 302인 상태에서 AUTO_INCREMENT를 100으로 설정하면 MySQL은 자동으로 303부터 시작합니다.
둘째, InnoDB 스토리지 엔진에서는 서버 재시작 시 AUTO_INCREMENT 값이 자동으로 재계산될 수 있으므로, 중요한 시퀀스 관리에는 신중해야 합니다.