Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

SELECT LAST_INSERT_ID () trả về 0 sau khi sử dụng câu lệnh đã chuẩn bị

LAST_INSERT_ID sẽ chỉ hoạt động đối với khóa chính được tạo tự động, được tạo trên trường auto_increment. Trong trường hợp của bạn, có vẻ như bạn đang cung cấp id một cách rõ ràng, vì vậy, id chèn cuối cùng chưa được đặt.

Điều này là rõ ràng:

mysql> insert into test (id, name) VALUES (5, 'test 2');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

Đây là điều ngầm hiểu:

mysql> insert into test (name) values ('test');
Query OK, 1 row affected (0.00 sec)

mysql> SELECT LAST_INSERT_ID();
+------------------+
| LAST_INSERT_ID() |
+------------------+
|                3 |
+------------------+
1 row in set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để thêm một chuỗi chuỗi theo id tăng dần trong bất kỳ bảng nào?

  2. Dump tệp sql sang ClearDB trong Heroku

  3. MySQL:Cách chèn nhiều bản ghi với cùng một ID tự động tăng

  4. Làm thế nào để tính toán tỷ lệ chuyển đổi trong MySQL?

  5. Làm thế nào để truy vấn cơ sở dữ liệu PHP / MySQL hoạt động chính xác?