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