Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Tìm giá trị AUTO_INCREMENT tiếp theo trong MySQL

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ó.