LAST_INSERT_ID()
има обхват на сесията.
Той ще върне стойността на идентичността, вмъкната в текущата сесия.
Ако не вмъкнете редове между INSERT
и LAST_INSERT_ID
, тогава ще работи добре.
Имайте предвид обаче, че за множество вмъквания на стойности, той ще върне самоличността на първия вмъкнат ред, а не на последния:
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 */