Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm cách nào để lấy giá trị AUTO_INCREMENT hiện tại cho một bảng trong MySQL?

Để biết giá trị auto_increment hiện tại, chúng ta có thể sử dụng hàm last_insert_id (). Đầu tiên, chúng ta sẽ tạo một bảng với sự trợ giúp của lệnh INSERT.

Tạo bảng -

mysql> CREATE table AutoIncrement
-> (
-> IdAuto int auto_increment,
-> primary key(IdAuto)
-> );
Query OK, 0 rows affected (0.59 sec)

Sau khi tạo bảng, chúng ta sẽ chèn các bản ghi với sự trợ giúp của lệnh INSERT. Insertingrecords -

mysql> INSERT into AutoIncrement values();
Query OK, 1 row affected (0.48 sec)

mysql> INSERT into AutoIncrement values();
Query OK, 1 row affected (0.17 sec)

mysql> INSERT into AutoIncrement values();
Query OK, 1 row affected (0.13 sec)

mysql> INSERT into AutoIncrement values();
Query OK, 1 row affected (0.09 sec)

Bây giờ, chúng ta sẽ xem tôi đã chèn bao nhiêu bản ghi vào bảng của mình với sự trợ giúp của lệnh SELECT.

Hiển thị tất cả các bản ghi -

mysql> SELECT * from AutoIncrement;
+--------+
| IdAuto |
+--------+
| 1      |
| 2      |
| 3      |
| 4      |
+--------+
4 rows in set (0.00 sec)

Do đó, mức tăng tự động cuối cùng là 4. Đây là truy vấn để biết giá trị hiện tại đã được chèn vào, là 4.

mysql> SELECT last_insert_id();

Sau đây là kết quả -

+------------------+
| last_insert_id() |
+------------------+
| 4                |
+------------------+
1 row in set (0.00 sec)

Đây là truy vấn cho biết giá trị gia tăng tự động tiếp theo. Cú pháp như sau -

SELECT `AUTO_INCREMENT`
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'yourDatabaseName'
AND TABLE_NAME = 'yourTableName';

Bây giờ, tôi đang áp dụng truy vấn trên -

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

Sau đây là kết quả -

+----------------------------+
| AUTO_INCREMENT             |
+----------------------------+
| 5                          |
+----------------------------+
1 row in set (0.13 sec)

Từ truy vấn trên, chúng tôi nhận được giá trị gia tăng tiếp theo.