首頁 >資料庫 >mysql教程 >MySQL 中的「LAST_INSERT_ID()」如何處理多重記錄「INSERT」語句?

MySQL 中的「LAST_INSERT_ID()」如何處理多重記錄「INSERT」語句?

DDD
DDD原創
2024-11-17 10:45:04333瀏覽

How Does `LAST_INSERT_ID()` Work with Multiple-Record `INSERT` Statements in MySQL?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn