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

Xem giá trị auto_increment của bảng MySQL không dùng SHOW TABLE?

Truy vấn giá trị AUTO_INCREMENT tiếp theo từ INFORMATION_SCHEMA

Thay vì SHOW TABLE STATUS, có thể truy vấn trực tiếp INFORMATION_SCHEMA.TABLES cột AUTO_INCREMENT.

Cú pháp

SELECT `AUTO_INCREMENT` AS 'NextAutoIncrementValue'
FROM `information_schema`.`TABLES`
WHERE `TABLE_SCHEMA` = 'yourDatabase' 
AND `TABLE_NAME` = 'yourTable';

Ví dụ thực tế

Tạo bảng và chèn 5 hàng:

mysql> CREATE TABLE viewtheauto_incrementValueForATableDemo (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentName VARCHAR(20)
    -> );

mysql> INSERT INTO viewtheauto_incrementValueForATableDemo(StudentName) VALUES 
('Ramit'), ('Bob'), ('Chris'), ('Robert'), ('John');

Dữ liệu: Id 1-5

Truy vấn AUTO_INCREMENT tiếp theo:

mysql> SELECT `AUTO_INCREMENT` AS 'NextAutoIncrementValue'
FROM `information_schema`.`TABLES`
WHERE `TABLE_SCHEMA` = 'test' 
AND `TABLE_NAME` = 'viewtheauto_incrementValueForATableDemo';

Kết quả:

+------------------------+
| NextAutoIncrementValue |
+------------------------+
| 6                      |
+------------------------+

So sánh các phương pháp

Phương phápCú phápƯu điểm
INFORMATION_SCHEMASELECT AUTO_INCREMENT FROM ...Chuẩn SQL, dùng trong query, lọc được nhiều bảng
SHOW TABLE STATUSSHOW TABLE STATUS LIKE 'table'Nhanh, nhiều info khác (rows, size...)
SHOW CREATE TABLESHOW CREATE TABLE tableXem cả DDL, AUTO_INCREMENT trong comment
LAST_INSERT_ID()SELECT LAST_INSERT_ID()ID vừa INSERT (session)

Lưu ý

  • Cần quyền SELECT trên INFORMATION_SCHEMA
  • Giá trị AUTO_INCREMENT là giá trị sẽ dùng cho INSERT tiếp theo
  • Sau DELETE, AUTO_INCREMENT không giảm (trừ TRUNCATE)
  • ALTER TABLE t AUTO_INCREMENT = 100 đặt lại giá trị tiếp theo