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

MySQL에서 ID 열의 시드 값 확인 및 AUTO_INCREMENT 시작 값 제어하는 방법

MySQL에서 자동 증가(AUTO_INCREMENT) 열의 시드 값, 즉 시작 오프셋을 확인하려면 SHOW VARIABLES 명령어를 사용하면 됩니다.

mysql> SHOW VARIABLES LIKE 'auto_inc%';

실행 결과

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| auto_increment_increment | 1     |
| auto_increment_offset    | 1     |
+--------------------------+-------+
2 rows in set (0.95 sec)

여기서 두 가지 핵심 변수를 확인할 수 있습니다.

  • auto_increment_increment: AUTO_INCREMENT 값이 한 번에 얼마씩 증가하는지를 결정합니다. 기본값은 1입니다.
  • auto_increment_offset: 자동 증가 번호가 시작되는 초기 값(시드)입니다. 기본값은 1입니다.

이러한 설정은 서버 전역 또는 세션 단위로 변경할 수 있으며, 이를 통해 AUTO_INCREMENT 동작을 외부에서 제어할 수 있습니다. 아래에서는 테이블 단위로 AUTO_INCREMENT 시작 값을 변경하는 실제 예제를 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 AUTO_INCREMENT 기본 키를 가진 테이블을 생성합니다.

mysql> create table DemoTable
    -> (
    -> StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY
    -> );
Query OK, 0 rows affected (0.94 sec)

2단계: 레코드 삽입

INSERT 명령어로 레코드를 몇 개 추가합니다. StudentId는 자동으로 1부터 순차적으로 채워집니다.

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.44 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.26 sec)

3단계: 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과

+-----------+
| StudentId |
+-----------+
|         1 |
|         2 |
+-----------+
2 rows in set (0.00 sec)

4단계: AUTO_INCREMENT 시작 값 변경

ALTER TABLE 문을 사용하면 특정 테이블의 AUTO_INCREMENT 시작 값을 원하는 숫자로 지정할 수 있습니다. 여기서는 1000으로 설정해 보겠습니다.

mysql> alter table DemoTable AUTO_INCREMENT=1000;
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0

5단계: 변경 후 레코드 삽입 및 확인

다시 레코드를 삽입한 뒤 SELECT 문으로 결과를 확인합니다.

mysql> insert into DemoTable values();
Query OK, 1 row affected (0.51 sec)

mysql> insert into DemoTable values();
Query OK, 1 row affected (1.37 sec)
mysql> select *from DemoTable;

실행 결과

+-----------+
| StudentId |
+-----------+
|         1 |
|         2 |
|      1000 |
|      1001 |
+-----------+
4 rows in set (0.00 sec)

결과를 보면 AUTO_INCREMENT 값을 1000으로 변경한 이후 삽입된 레코드부터는 StudentId가 1000, 1001처럼 지정된 시작 값부터 증가하는 것을 확인할 수 있습니다. 참고로 새로 설정한 시작 값이 테이블의 현재 최대 값보다 작으면 해당 설정은 무시되므로, 반드시 기존 최대 값보다 큰 값을 지정해야 합니다.