LAST_INSERT_ID()
có phạm vi phiên.
Nó sẽ trả về giá trị nhận dạng được chèn trong phiên hiện tại.
Nếu bạn không chèn bất kỳ hàng nào giữa INSERT
và LAST_INSERT_ID
, sau đó nó sẽ hoạt động tốt.
Xin lưu ý rằng đối với nhiều lần chèn giá trị, nó sẽ trả về danh tính của hàng đầu tiên được chèn, không phải hàng cuối cùng:
INSERT
INTO mytable (identity_column)
VALUES (NULL)
SELECT LAST_INSERT_ID()
--
1
INSERT
INTO mytable (identity_column)
VALUES (NULL), (NULL)
/* This inserts rows 2 and 3 */
SELECT LAST_INSERT_ID()
--
2
/* But this returns 2, not 3 */