在主從表結構中,主表使用 auto_increment 主鍵作為從表外鍵。插入主表記錄後,如何高併發安全地獲取自動生成的 ID?傳統 SELECT MAX(id) FROM tablename 需在事務中加排他鎖,步驟繁瑣且併發性差。
核心優勢:線程安全,屬於具體資料庫連接(Session 級別)。
SELECT LAST_INSERT_ID() 與連接 2 執行結果 不同;而兩連接執行 SELECT MAX(id) 結果 相同這與 SQL Server 中 SCOPE_IDENTITY()(當前會話)與 IDENT_CURRENT()(全域最大值)的區別完全一致。
批量插入時,
LAST_INSERT_ID()僅返回第一條記錄的 ID。
範例:INSERT INTO tb(c1,c2) VALUES (v1,v2), (v3,v4)...→ 返回第一組值對應的 ID。