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

AUTO_INCREMENT và LAST_INSERT_ID

SELECT max(employeeid) FROM Employee;

Truy vấn trên trả về giá trị của employeeid trong tổng số bản ghi được chèn gần đây nhất trong bảng Nhân viên vì employeeid là một cột tăng tự động. Điều này có vẻ ổn, nhưng giả sử có hai chuỗi đang thực hiện thao tác chèn đồng thời, có khả năng bạn nhận được sai id của bản ghi được chèn lần cuối!

Đừng lo lắng, MySQL cung cấp một hàm trả về giá trị của cột tăng tự động của bản ghi được chèn lần cuối.

SELECT LAST_INSERT_ID();

LAST_INSERT_ID() luôn kết nối cụ thể , điều này có nghĩa là ngay cả khi thao tác chèn được thực hiện đồng thời từ các kết nối khác nhau, nó luôn trả về giá trị của hoạt động cụ thể của kết nối hiện tại.

Vì vậy, trước tiên bạn phải chèn bản ghi trong bảng Nhân viên, chạy truy vấn trên để nhận giá trị id và sử dụng giá trị này để chèn vào bảng thứ hai.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sự khác biệt và hạn chế động của chuỗi PHP

  2. C # - MySQL và Microsoft SQL Server

  3. tomcat7:Không thể tải lớp trình điều khiển JDBC [com.mysql.jdbc.Driver]

  4. Chuỗi truy vấn MySQL chứa

  5. Cách dễ dàng nhanh chóng để di chuyển SQLite3 sang MySQL?