LAST_INSERT_ID()
hat einen Sitzungsbereich.
Es gibt den Identitätswert zurück, der in die aktuelle Sitzung eingefügt wurde.
Wenn Sie keine Zeilen zwischen INSERT
einfügen und LAST_INSERT_ID
, dann klappt es schon.
Beachten Sie jedoch, dass bei Einfügungen mehrerer Werte die Identität der ersten eingefügten Zeile zurückgegeben wird, nicht der letzten:
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 */