LAST_INSERT_ID()
má rozsah relace.
Vrátí hodnotu identity vloženou do aktuální relace.
Pokud mezi INSERT
nevložíte žádné řádky a LAST_INSERT_ID
, pak to bude fungovat správně.
Všimněte si však, že pro vložení více hodnot vrátí identitu prvního vloženého řádku, nikoli posledního:
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 */