首頁 >資料庫 >mysql教程 >在MySQL中插入多行後如何檢索ID?

在MySQL中插入多行後如何檢索ID?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-24 10:57:10396瀏覽

How to Retrieve IDs After Inserting Multiple Rows in MySQL?

在MySQL 中透過ID 檢索插入多行

將資料插入MySQL 表通常透過LAST_INSERT_ID 傳回新建立行的ID ()功能。然而,在插入多行時,要取得 ID 陣列可能會很困難。

使用 InnoDB 進行批次插入

對於使用最新 MySQL 版本的 InnoDB 表,您可以使用LAST_INSERT_ID() 和 ROW_COUNT() 的組合來擷取插入的 ID。當 innodb_autoinc_lock_mode 設定為 0(傳統)或 1(連續)時,InnoDB 會為批次插入提供順序自動遞增 ID。

檢索 ID 範圍

假設批次插入聲明已執行:

INSERT INTO table (`column1`, `column2`) VALUES ..., ..., ...

您可以使用以下公式計算新插入的行的 ID範圍:

INSERTED_ID_RANGE = [LAST_INSERT_ID(), LAST_INSERT_ID() + ROW_COUNT() - 1]

範例

考慮以下批次插入:

INSERT INTO table (`column1`, `column2`)
VALUES (1, 'value 1'), (2, 'value 2'), (3, 'value 3');

假設LAST_INSERT_ID() 插入後為5,則插入的後為5,則插入的後為5,則插入的後為5,則插入的後為5,則插入的後為5,則插入的ID 範圍為:

[5, 5 + ROW_COUNT() - 1] = [5, 5 + 3 - 1] = [5, 7]

因此,插入的ID數組為 [5, 6, 7]。

以上是在MySQL中插入多行後如何檢索ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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