LAST_INSERT_ID()
heeft sessiebereik.
Het retourneert de identiteitswaarde die in de huidige sessie is ingevoegd.
Als u geen rijen invoegt tussen INSERT
en LAST_INSERT_ID
, dan zal het goed werken.
Houd er echter rekening mee dat voor het invoegen van meerdere waarden de identiteit van de eerste ingevoegde rij wordt geretourneerd, niet de laatste:
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 */