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

LAST_INSERT_ID () luôn trả về 0 (RMySQL) - vấn đề kết nối riêng

Bạn đang chèn NULL vào cột Khóa chính. Vì bạn không thể có hai hàng với cùng một PK, nên có thể bạn không thực sự chèn bất kỳ dữ liệu thực nào (đây cũng có thể là một lỗi bạn muốn mắc phải). Hãy thử:

dbSendQuery(con, "INSERT INTO t VALUES(5);")

Việc thực thi sẽ cung cấp cho bạn hai giá trị khác nhau cho last_insert_id.

Chỉnh sửa:bị hiểu nhầm. Xem tại đây để biết chi tiết về LAST_INSERT_ID . Câu trả lời đã sửa đổi:nếu bạn không chỉ định giá trị trong AUTO_INCREMENT cột, sau đó bạn sẽ nhận được LAST_INSERT_ID giá trị được trả về. Trong trường hợp đó, hãy thử:

INSERT INTO t DEFAULT VALUES


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có phải đóng các kết nối SQL được mở bằng PDO trong PHP không

  2. Python và Django OperationalError (2006, 'Máy chủ MySQL đã biến mất')

  3. Cách giám sát tổng hợp kết nối cho .NET MySQL Data Connector trong IIS

  4. Chèn vào lựa chọn và cập nhật trong một truy vấn

  5. Cách xây dựng menu cấp độ không giới hạn thông qua PHP và mysql