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

Cách xem giá trị AUTO_INCREMENT hiện tại của bảng trong MySQL

Có 2 cách chính để xem giá trị AUTO_INCREMENT tiếp theo sẽ được gán cho cột khóa chính.

Cách 1: SHOW TABLE STATUS (Khuyên dùng)

SHOW TABLE STATUS LIKE 'tên_bảng'\G

Cách 2: Truy vấn INFORMATION_SCHEMA

SELECT `AUTO_INCREMENT` 
FROM `information_schema`.`TABLES` 
WHERE `TABLE_SCHEMA` = 'tên_database' 
AND `TABLE_NAME` = 'tên_bảng';

Ví dụ minh họa

Tạo bảng và chèn 7 bản ghi:

mysql> CREATE TABLE viewAutoIncrementDemo (
    -> UserId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> UserName VARCHAR(20)
    -> );
Query OK, 0 rows affected (0.59 sec)

mysql> INSERT INTO viewAutoIncrementDemo(UserName) VALUES 
    -> ('John'), ('Carol'), ('Bob'), ('Sam'), ('Mike'), ('David'), ('Larry');

Xem dữ liệu (UserId từ 1 đến 7):

mysql> SELECT * FROM viewAutoIncrementDemo;
+--------+----------+
| UserId | UserName |
+--------+----------+
| 1      | John     |
| 2      | Carol    |
| 3      | Bob      |
| 4      | Sam      |
| 5      | Mike     |
| 6      | David    |
| 7      | Larry    |
+--------+----------+

Kết quả cách 1: SHOW TABLE STATUS

mysql> SHOW TABLE STATUS LIKE 'viewAutoIncrementDemo'\G
*************************** 1. row ***************************
           Name: viewautoincrementdemo
         Engine: InnoDB
        Version: 10
     Row_format: Dynamic
           Rows: 7
 Avg_row_length: 2340
    Data_length: 16384
Max_data_length: 0
   Index_length: 0
      Data_free: 0
 Auto_increment: 8   <-- Giá trị tiếp theo sẽ là 8
...

Kết quả cách 2: INFORMATION_SCHEMA

mysql> SELECT `AUTO_INCREMENT` 
    -> FROM `information_schema`.`TABLES` 
    -> WHERE `TABLE_SCHEMA` = 'sample' 
    -> AND `TABLE_NAME` = 'viewAutoIncrementDemo';
+----------------+
| AUTO_INCREMENT |
+----------------+
| 8              |
+----------------+

So sánh 2 cách

Tiêu chíSHOW TABLE STATUSINFORMATION_SCHEMA
Định dạng đầu raDạng dọc (\G) hoặc bảngBảng chuẩn SQL
Thông tin bổ sungNhiều (Engine, Rows, Size, Collation...)Chỉ AUTO_INCREMENT
Phù hợp choDBA, kiểm tra nhanhỨng dụng, script tự động

Lưu ý: Giá trị AUTO_INCREMENT không giảm khi xóa bản ghi. Sau DELETE, giá trị tiếp theo vẫn tăng tiếp. Dùng TRUNCATE TABLE hoặc ALTER TABLE ... AUTO_INCREMENT = 1 để reset.