Truy vấn hệ thống INFORMATION_SCHEMA.TABLES để lấy giá trị AUTO_INCREMENT sắp tới của bảng.
Cú pháp
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'tenDatabase' AND TABLE_NAME = 'tenBang';
Ví dụ
Tạo bảng có khóa chính AUTO_INCREMENT và chèn 4 bản ghi:
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)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)Dữ liệu hiện tại (ID 1-4):
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | John | 23 | | 2 | Carol | 21 | | 3 | Bob | 24 | | 4 | David | 25 | +----------+------------+-----------+
Truy vấn giá trị AUTO_INCREMENT tiếp theo:
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)
Lưu ý: Giá trị này phản ánh trạng thái engine lưu trữ (InnoDB/MyISAM). Sau khi restart MySQL, InnoDB có thể tái tính giá trị này dựa trên MAX(id) hiện có.