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

MySQL에서 다음 AUTO_INCREMENT 값 미리 확인하는 방법

다음 AUTO_INCREMENT 값을 조회하는 방법

네, 가능합니다. INFORMATION_SCHEMA.TABLES 테이블을 조회하면 특정 테이블에 다음으로 사용될 AUTO_INCREMENT 값을 미리 확인할 수 있습니다. 기본 문법은 아래와 같습니다.

SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= yourDatabaseName AND TABLE_NAME=yourTableName;

실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 예제로 사용할 테이블을 생성합니다.

mysql> create table DemoTable
(
    ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    ClientName varchar(20),
    ClientAge int
);
Query OK, 0 rows affected (1.33 sec)

2단계: 데이터 삽입

INSERT 명령을 사용해 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable(ClientName,ClientAge) values('John',23);
Query OK, 1 row affected (0.35 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('Carol',21);
Query OK, 1 row affected (0.28 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('Bob',24);
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable(ClientName,ClientAge) values('David',25);
Query OK, 1 row affected (0.25 sec)

3단계: 저장된 데이터 확인

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

mysql> select *from DemoTable;

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

+----------+------------+-----------+
| ClientId | ClientName | ClientAge |
+----------+------------+-----------+
| 1        | John       | 23        |
| 2        | Carol      | 21        |
| 3        | Bob        | 24        |
| 4        | David      | 25        |
+----------+------------+-----------+
4 rows in set (0.00 sec)

4단계: 다음 AUTO_INCREMENT 값 조회

위 테이블에서 다음으로 사용될 AUTO_INCREMENT 값을 확인하는 쿼리입니다. 데이터베이스 이름과 테이블 이름을 본인 환경에 맞게 지정하면 됩니다.

mysql> SELECT AUTO_INCREMENT
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA= 'sample' AND TABLE_NAME='DemoTable';

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

+----------------+
| AUTO_INCREMENT |
+----------------+
| 5              |
+----------------+
1 row in set (0.20 sec)

현재 마지막 ClientId가 4이므로, 다음에 삽입되는 레코드에는 자동으로 5가 할당된다는 것을 알 수 있습니다.

참고 사항

  • 이 방법은 MySQL 8.0 이상에서도 동일하게 작동하지만, 권한에 따라 INFORMATION_SCHEMA 접근이 제한될 수 있습니다.
  • SHOW TABLE STATUS LIKE '테이블명'; 명령으로도 Auto_increment 컬럼을 통해 같은 정보를 확인할 수 있습니다.
  • 레코드 삭제 후에도 AUTO_INCREMENT 값은 초기화되지 않으므로, 조회 시점의 값과 실제 삽입 시점의 값은 동시성 상황에 따라 달라질 수 있다는 점을 유의하세요.