MySQL에서 AUTO_INCREMENT 값은 기본적으로 1부터 시작합니다. 하지만 필요에 따라 이 시작 값을 변경할 수 있으며, 크게 두 가지 방법이 있습니다.
방법 1. ALTER TABLE 쿼리로 변경하기
이미 생성된 테이블의 AUTO_INCREMENT 시작 값을 변경하려면 ALTER TABLE 쿼리를 사용합니다. 기본 문법은 다음과 같습니다.
ALTER TABLE table_name AUTO_INCREMENT = value;
예제
먼저 'id' 컬럼을 AUTO_INCREMENT로 설정한 테이블을 생성해 보겠습니다. 이 상태에서 데이터를 삽입하면 일련번호는 기본값인 1부터 시작합니다.
mysql> Create Table EMP(id int NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10));
Query OK, 0 rows affected (0.07 sec)
mysql> Insert Into EMP(Name) Values('Aryan');
Query OK, 1 row affected (0.02 sec)
mysql> Insert Into EMP(Name) Values('Yash');
Query OK, 1 row affected (0.04 sec)
mysql> Select * from EMP;
+----+-------+
| id | NAME |
+----+-------+
| 1 | Aryan |
| 2 | Yash |
+----+-------+
2 rows in set (0.00 sec)이후 일련번호를 변경하고 싶다면 ALTER TABLE 쿼리로 AUTO_INCREMENT 값을 수정할 수 있습니다. 아래 예제에서는 시작 값을 10으로 변경했습니다.
mysql> Alter table emp auto_increment = 10;
Query OK, 2 rows affected (0.25 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> Insert Into EMP(Name) Values('Daksh');
Query OK, 1 row affected (0.03 sec)
mysql> Insert Into EMP(Name) Values('Shayra');
Query OK, 1 row affected (0.06 sec)
mysql> Select * from EMP;
+----+--------+
| id | NAME |
+----+--------+
| 1 | Aryan |
| 2 | Yash |
| 10 | Daksh |
| 11 | Shayra |
+----+--------+
4 rows in set (0.00 sec)위 쿼리를 실행한 후에는 AUTO_INCREMENT 값이 10으로 변경되었기 때문에, 새로 삽입되는 데이터의 일련번호는 10부터 차례대로 부여됩니다.
방법 2. CREATE TABLE 쿼리로 변경하기
테이블을 새로 생성하는 시점에도 AUTO_INCREMENT 시작 값을 지정할 수 있습니다. CREATE TABLE 쿼리 뒤에 원하는 값을 명시하면 됩니다.
CREATE TABLE (Column1 INT PRIMARY KEY NOT NULL AUTO_INCREMENT, Column2 data type) AUTO_INCREMENT = value;
예제
아래 예제에서는 테이블 생성 시 AUTO_INCREMENT 값을 100으로 지정했습니다.
mysql> Create Table EMP1(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(10)) AUTO_INCREMENT = 100; Query OK, 0 rows affected (0.11 sec)
이렇게 하면 테이블 생성 시점부터 AUTO_INCREMENT 값이 100으로 설정됩니다. 따라서 데이터를 삽입하면 기본값인 1이 아닌 100부터 일련번호가 시작됩니다.
mysql> Insert into emp1(name) values('Sohan');
Query OK, 1 row affected (0.04 sec)
mysql> Insert into emp1(name) values('Harshit');
Query OK, 1 row affected (0.05 sec)
mysql> Select * from emp1;
+-----+---------+
| id | NAME |
+-----+---------+
| 100 | Sohan |
| 101 | Harshit |
+-----+---------+
2 rows in set (0.00 sec)정리
- 기존 테이블:
ALTER TABLE 테이블명 AUTO_INCREMENT = 값;으로 시작 번호를 변경할 수 있습니다. - 새 테이블:
CREATE TABLE문 마지막에AUTO_INCREMENT = 값;을 추가하여 처음부터 시작 번호를 지정할 수 있습니다.
단, ALTER TABLE로 설정하는 값은 현재 저장된 최대 일련번호보다 작을 경우 무시될 수 있으므로, 항상 기존 데이터의 최대값보다 큰 값을 지정하는 것이 안전합니다.