首頁 >資料庫 >mysql教程 >如何在 MySQL 中批次插入後檢索自動產生的 ID?

如何在 MySQL 中批次插入後檢索自動產生的 ID?

Linda Hamilton
Linda Hamilton原創
2024-12-06 20:24:15424瀏覽

How to Retrieve Auto-Generated IDs After a Bulk Insert in MySQL?

在 MySQL 中批次插入傳回的 ID

將多行插入 MySQL 表是一項常見任務。但是,如果您需要在批次插入後檢索新產生的 ID,標準的 LAST_INSERT_ID() 函數就不夠了。

InnoDB 解決方案

如果您的表使用InnoDB 儲存引擎(大多數工作負載的建議設定),MySQL 提供了使用LAST_INSERT_ID() 和ROW_COUNT()函數。它的工作原理如下:

在 InnoDB 中,當 innodb_autoinc_lock_mode 設定為 0(傳統)或 1(連續)時,使用自動增量進行批次插入可以保證順序數字。這表示您可以使用 LAST_INSERT_ID() 檢索第一個 ID,並透過新增 ROW_COUNT() - 1 檢索最後一個 ID。

例如:

INSERT INTO example_table (name) VALUES ('John'), ('Mary'), ('Bob');

-- Get first ID
SELECT LAST_INSERT_ID() AS first_id;

-- Get row count
SELECT ROW_COUNT() AS row_count;

-- Get last ID
SELECT LAST_INSERT_ID() + ROW_COUNT() - 1 AS last_id;

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

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