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

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

Có 2 cách phổ biến:

1. LAST_INSERT_ID() - Giá trị AUTO_INCREMENT vừa chèn (session hiện tại)

mysql> CREATE TABLE AutoIncrement (IdAuto INT AUTO_INCREMENT, PRIMARY KEY(IdAuto));
mysql> INSERT INTO AutoIncrement VALUES(), (), (), (); -- chèn 4 hàng
mysql> SELECT * FROM AutoIncrement;
+--------+
| IdAuto |
+--------+
| 1      |
| 2      |
| 3      |
| 4      |
+--------+

mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
| 4                |
+------------------+

Trả về giá trị AUTO_INCREMENT của hàng vừa chèn thành công trong phiên làm việc hiện tại.

2. INFORMATION_SCHEMA.TABLES - Giá trị AUTO_INCREMENT tiếp theo sẽ được gán

mysql> SELECT `AUTO_INCREMENT`
    -> FROM INFORMATION_SCHEMA.TABLES
    -> WHERE TABLE_SCHEMA = 'business'
    -> AND TABLE_NAME = 'AutoIncrement';
+----------------------------+
| AUTO_INCREMENT             |
+----------------------------+
| 5                          |
+----------------------------+

Trả về giá trị tiếp theo (5) sẽ được gán cho bản ghi mới.

Tóm tắt

  • LAST_INSERT_ID(): Giá trị vừa dùng (session-scoped, an toàn cho đa luồng).
  • INFORMATION_SCHEMA.TABLES.AUTO_INCREMENT: Giá trị kế tiếp (global, dùng cho admin/monitor).