MySQL에서 테이블 생성 쿼리에 AUTO_INCREMENT=5를 지정하면 자동 증가 값이 기본값인 1이 아닌 5부터 시작됩니다. 즉, 첫 번째 레코드의 ID가 5로 할당되며 이후 레코드는 6, 7, 8... 순으로 증가합니다.
AUTO_INCREMENT 옵션을 별도로 설정하지 않으면 MySQL은 기본적으로 1부터 시작하므로, 특정 숫자부터 시작해야 하는 경우에만 이 옵션을 사용하면 됩니다.
AUTO_INCREMENT 시작 값 설정 문법
테이블 생성 시 자동 증가 시작 값을 지정하는 기본 문법은 다음과 같습니다.
CREATE TABLE yourTableName ( yourColumnName1 dataType NOT NULL AUTO_INCREMENT, ... N, PRIMARY KEY(yourColumnName1) ) AUTO_INCREMENT=5;
위 문법을 실제 예제를 통해 더 자세히 살펴보겠습니다.
Case 1: 기본 설정 — 1부터 시작하는 경우
AUTO_INCREMENT 시작 값을 따로 지정하지 않으면, 기본 표준에 따라 자동 증가 값은 1부터 시작됩니다.
먼저 일반적인 방식으로 테이블을 생성하는 쿼리입니다.
mysql> create table defaultAutoIncrementDemo
-> (
-> Id int NOT NULL AUTO_INCREMENT,
-> Name varchar(10),
-> PRIMARY KEY(Id)
-> );
Query OK, 0 rows affected (2.19 sec)이제 insert 명령으로 몇 개의 레코드를 삽입해 보겠습니다.
mysql> insert into defaultAutoIncrementDemo(Name) values('John');
Query OK, 1 row affected (0.23 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('James');
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('Robert');
Query OK, 1 row affected (0.14 sec)
mysql> insert into defaultAutoIncrementDemo(Name) values('Mike');
Query OK, 1 row affected (0.13 sec)select 문으로 전체 레코드를 조회하면 Id가 1부터 차례대로 증가한 것을 확인할 수 있습니다.
mysql> select *from defaultAutoIncrementDemo;
실행 결과는 다음과 같습니다.
+----+--------+ | Id | Name | +----+--------+ | 1 | John | | 2 | James | | 3 | Robert | | 4 | Mike | +----+--------+ 4 rows in set (0.00 sec)
Case 2: AUTO_INCREMENT=5로 5부터 시작하는 경우
이번에는 테이블 생성 시 AUTO_INCREMENT=5 옵션을 추가하여 자동 증가 값이 5부터 시작되도록 설정해 보겠습니다.
mysql> create table AutoIncrementStartsFrom5 -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(10), -> PRIMARY KEY(Id) -> )AUTO_INCREMENT=5; Query OK, 0 rows affected (1.00 sec)
마찬가지로 insert 명령으로 레코드를 삽입합니다.
mysql> insert into AutoIncrementStartsFrom5(Name) values('Larry');
Query OK, 1 row affected (0.15 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('David');
Query OK, 1 row affected (0.20 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('Bob');
Query OK, 1 row affected (0.13 sec)
mysql> insert into AutoIncrementStartsFrom5(Name) values('Ricky');
Query OK, 1 row affected (0.14 sec)select 문으로 전체 레코드를 조회해 보겠습니다.
mysql> select *from AutoIncrementStartsFrom5;
실행 결과는 다음과 같습니다.
+----+-------+ | Id | Name | +----+-------+ | 5 | Larry | | 6 | David | | 7 | Bob | | 8 | Ricky | +----+-------+ 4 rows in set (0.00 sec)
출력 결과를 보면 자동 증가 값이 5부터 시작하여 6, 7, 8 순으로 할당된 것을 확인할 수 있습니다. 이처럼 AUTO_INCREMENT=n 옵션을 활용하면 원하는 숫자부터 자동 증가 값을 시작할 수 있습니다.