LAST_INSERT_ID()
セッションスコープがあります。
現在のセッションに挿入されたID値を返します。
INSERT
の間に行を挿入しない場合 およびLAST_INSERT_ID
、それなら問題なく動作します。
ただし、複数の値を挿入すると、最後の行ではなく、挿入された最初の行の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 */