LAST_INSERT_ID()
memiliki cakupan sesi.
Ini akan mengembalikan nilai identitas yang dimasukkan dalam sesi saat ini.
Jika Anda tidak menyisipkan baris apa pun di antara INSERT
dan LAST_INSERT_ID
, maka itu akan berfungsi dengan baik.
Perhatikan bahwa untuk beberapa sisipan nilai, itu akan mengembalikan identitas baris pertama yang dimasukkan, bukan yang terakhir:
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 */