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

MySQL에서 AUTO_INCREMENT 시작 값 변경하는 방법

MySQL에서 자동 증분(AUTO_INCREMENT) 카운터는 기본적으로 0이 아닌 1부터 시작합니다. 하지만 경우에 따라 특정 숫자부터 증분을 시작해야 할 필요가 있습니다. 예를 들어 기존 데이터를 마이그레이션하거나, 번호 체계를 맞춰야 하는 상황 등이 그렇습니다.

AUTO_INCREMENT 시작 값 변경 문법

자동 증분 시작 값을 원하는 숫자로 변경하려면 아래와 같은 ALTER TABLE 구문을 사용합니다.

ALTER TABLE 테이블명 auto_increment=시작할숫자;

예제 테이블 생성

위 문법을 실제로 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.

mysql> create table startAutoIncrement
-> (
-> Counter int auto_increment ,
-> primary key(Counter)
-> );
Query OK, 0 rows affected (0.90 sec)

위 테이블은 Counter라는 int 타입의 자동 증분 컬럼을 가지며, 해당 컬럼이 기본 키(primary key)로 설정되어 있습니다.

증분 시작 값을 20으로 변경

이제 앞서 소개한 ALTER TABLE 구문을 사용하여 자동 증분이 20부터 시작하도록 설정해 보겠습니다.

mysql> alter table startAutoIncrement auto_increment=20;
Query OK, 0 rows affected (0.30 sec)
Records: 0 Duplicates: 0 Warnings: 0

쿼리가 정상적으로 실행되면 자동 증분 카운터가 20으로 초기화됩니다.

레코드 삽입 및 결과 확인

INSERT 명령어를 사용하여 테이블에 레코드를 몇 개 삽입해 보겠습니다. 컬럼 값을 비워두면 자동 증분 값이 자동으로 할당됩니다.

mysql> insert into startAutoIncrement values();
Query OK, 1 row affected (0.20 sec)

mysql> insert into startAutoIncrement values();
Query OK, 1 row affected (0.14 sec)

mysql> insert into startAutoIncrement values();
Query OK, 1 row affected (0.18 sec)

레코드가 모두 삽입되었다면, SELECT 문을 사용하여 테이블의 전체 레코드를 조회하고 자동 증분이 어느 숫자부터 시작되었는지 확인할 수 있습니다.

mysql> select *from startAutoIncrement;

실행 결과는 다음과 같습니다.

+---------+
| Counter |
+---------+
| 20      |
| 21      |
| 22      |
+---------+
3 rows in set (0.00 sec)

결과 분석

출력 결과를 보면 첫 번째 레코드의 Counter 값이 20부터 시작하여 21, 22로 순차적으로 증가한 것을 확인할 수 있습니다. 이처럼 ALTER TABLE 구문 하나만으로 MySQL의 자동 증분 시작 값을 손쉽게 변경할 수 있습니다.

참고로, 이미 데이터가 존재하는 테이블에서는 새로 설정하는 값이 현재 최대 증분 값보다 작으면 무시될 수 있으므로, 항상 기존 데이터의 최댓값보다 큰 숫자를 지정하는 것이 안전합니다.