Đây là giải pháp đề xuất bởi Hướng dẫn sử dụng MySQl :
Nếu expr được đưa ra làm đối số cho LAST_INSERT_ID (), giá trị của đối số sẽ được hàm trả về và được ghi nhớ là giá trị tiếp theo sẽ được trả về bởi LAST_INSERT_ID (). Điều này có thể được sử dụng để mô phỏng các câu lệnh:
Tạo một bảng để chứa bộ đếm tuần tự và khởi tạo nó:
mysql> CREATE TABLE sequence (id INT NOT NULL); mysql> INSERT INTO sequence VALUES (0);
Sử dụng bảng để tạo các số thứ tự như sau:
mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1); mysql> SELECT LAST_INSERT_ID();
Câu lệnh UPDATE làm tăng bộ đếm trình tự và thực hiện lệnh gọi tiếp theo tới LAST_INSERT_ID () để trả về giá trị đã cập nhật. Câu lệnh TheSELECT truy xuất giá trị đó. Chức năng API mysql_insert_id () C cũng có thể được sử dụng để nhận giá trị. Xem Phần 23.8.7.37, “mysql_insert_id ()”.
Bạn có thể tạo chuỗi mà không cần gọi LAST_INSERT_ID (), nhưng khả năng sử dụng hàm theo cách này là giá trị ID được duy trì trong máy chủ như giá trị được tạo tự động cuối cùng. An toàn cho nhiều người dùng vì nhiều khách hàng có thể đưa ra câu lệnh CẬP NHẬT và nhận giá trị trình tự của riêng họ bằng câu lệnh SELECT (hoặc mysql_insert_id ()), mà không ảnh hưởng hoặc bị ảnh hưởng bởi các khách hàng khác tạo giá trị trình tự của riêng họ.