LAST_INSERT_ID() MySQL 中多記錄INSERT 語句的行為
MySQL 的LAST_INSERT_ID() 函數檢索為最後插入的行產生的ID 。與使用多重記錄 INSERT 語句相比,使用單一記錄 INSERT 語句時,此行為可能有所不同。
單記錄INSERT 語句
使用單一記錄INSERT語句中,LAST_INSERT_ID()如預期傳回產生的ID,對應於最後一筆記錄
多紀錄INSERT語句
但是,當使用多重記錄 INSERT 語句時,LAST_INSERT_ID() 傳回與第一個插入行對應的 ID。此行為在 MySQL 文件中明確記錄,強調它允許在另一台伺服器上輕鬆重現相同的 INSERT 語句。
範例
考慮以下多記錄INSERT語句:
INSERT INTO people (name,age) VALUES ('William',25), ('Bart',15), ('Mary',12);
語句執行後,LAST_INSERT_ID()會傳回1,而不是3 ,表示為插入的第一筆記錄(「William」)所產生的ID。
推理
此行為可確保跨伺服器的資料一致性。如果 LAST_INSERT_ID() 傳回多記錄語句中最後插入行的 ID,則 INSERT 語句在為同一行指派不同 ID 的其他伺服器上將無法重現。
以上是MySQL 中的「LAST_INSERT_ID()」如何處理多重記錄「INSERT」語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!