Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 AUTO_INCREMENT 현재 값 변경하는 방법 완벽 가이드

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 값이 자동으로 재계산될 수 있으므로, 중요한 시퀀스 관리에는 신중해야 합니다.