MySQL에서 자동 증가(AUTO_INCREMENT) 값을 특정 지점부터 시작하도록 설정하려면 ALTER 명령어를 사용하면 됩니다. 기본 문법은 다음과 같습니다.
ALTER TABLE yourTableName auto_increment = anySpecificPoint;
예제 테이블 생성하기
개념을 쉽게 이해하기 위해 먼저 테이블을 하나 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table AutoIncrementSpecificPoint -> ( -> BookId int auto_increment not null, -> Primary key(BookId) -> ); Query OK, 0 rows affected (0.56 sec)
레코드 삽입 후 확인하기
이제 INSERT 명령어를 사용해 레코드를 삽입해 보겠습니다.
mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.17 sec) mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.17 sec) mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.09 sec) mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.10 sec)
위의 INSERT 명령은 1부터 값을 시작하여 다음 값마다 1씩 증가시킵니다. SELECT 문으로 테이블의 모든 레코드를 조회해 확인할 수 있습니다.
mysql> select *from AutoIncrementSpecificPoint;
실행 결과는 다음과 같습니다.
+--------+ | BookId | +--------+ | 1 | | 2 | | 3 | | 4 | +--------+ 4 rows in set (0.00 sec)
위 출력 결과를 보면 AUTO_INCREMENT가 1부터 시작된 것을 확인할 수 있습니다.
AUTO_INCREMENT 시작 값 변경하기
이제 AUTO_INCREMENT가 특정 지점부터 시작하도록 변경하려면 ALTER 명령어를 사용합니다. 쿼리는 다음과 같습니다.
mysql> alter table AutoIncrementSpecificPoint auto_increment = 100; Query OK, 0 rows affected (0.25 sec) Records: 0 Duplicates: 0 Warnings: 0
위 쿼리에서는 자동 증가 시작 값을 100으로 설정했습니다. 이제 다시 INSERT 명령어로 레코드를 삽입해 보겠습니다.
mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.25 sec) mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.18 sec) mysql> insert into AutoIncrementSpecificPoint values(); Query OK, 1 row affected (0.14 sec)
SELECT 문으로 테이블의 모든 레코드를 다시 조회해 보겠습니다.
mysql> select *from AutoIncrementSpecificPoint;
다음은 변경된 자동 증가 값, 즉 100부터 시작되는 결과입니다.
+--------+ | BookId | +--------+ | 1 | | 2 | | 3 | | 4 | | 100 | | 101 | | 102 | +--------+ 7 rows in set (0.00 sec)
출력 결과에서 볼 수 있듯이, ALTER 명령어로 시작 값을 100으로 지정한 이후 삽입된 레코드들은 100, 101, 102처럼 해당 값부터 순차적으로 증가하는 것을 확인할 수 있습니다.