Tôi giả sử bạn muốn truy xuất id được chèn cuối cùng này vào một thời điểm sau đó sau khi chèn nó, vì nếu bạn cần nó ngay sau khi chèn nó, bạn rõ ràng đã biết id là gì.
Cách duy nhất bạn có thể nhận được đó là có cột khác trên bảng có thể cho biết hàng nào được chèn lần cuối, chẳng hạn như cột dấu thời gian hoặc cột ngày giờ. Nếu id của bạn là duy nhất và tăng, bạn chỉ có thể sử dụng cột đó. Sau đó, bạn chỉ cần chọn 1 hàng được sắp xếp theo cột đó theo thứ tự giảm dần.
Ví dụ
INSERT INTO my_table (id, timestamp) VALUES (123, NOW())
SELECT id FROM my_table ORDER BY timestamp DESC LIMIT 1
Edit: theo ý kiến dưới đây, bạn tốt hơn bằng cách sử dụng một cột AUTO_INCREMENT, mặc dù cột này không phải là cột id
, bạn có thể thêm một ô tô -increment insert_order
cột thuộc loại Int
và đơn giản là sắp xếp theo thứ tự đó.
Nguồn
2012-01-05 16:58:58
Nếu ID không phải là auto-increment, sau đó bạn phải cung cấp cho nó trong câu lệnh INSERT của bạn, vì vậy bạn đã có nó –
@Darhazer: ... khả năng trong ứng dụng khác, có khả năng trên máy khác, có khả năng về một mạng khác ở một quốc gia khác ....? –
bằng cách LAST_INSERT_ID() chỉ hoạt động cho phiên đã chèn bản ghi, nó sẽ không trả lại bất kỳ thứ gì từ mạng khác ở quốc gia khác :) –