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

MySQL批次插入後如何擷取自動產生的ID?

DDD
發布: 2024-12-28 09:34:09
原創
634 人瀏覽過

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

在MySQL 中進行批次插入和ID 檢索

將多行插入MySQL 表並檢索新ID 是一項常見要求,但可能不會立即顯而易見地實施。本文檔說明如何使用 MySQL 的 LAST_INSERT_ID() 和 ROW_COUNT() 函數來實現此目的,特別是在使用 InnoDB 儲存引擎時。

InnoDB 的順序ID 產生

使用時在MySQL 的InnoDB 儲存引擎中,批次插入會維護自動增量ID 的順序分配,前提是innodb_autoinc_lock_mode inc_lock_mode 0(傳統)或1(連續)。

擷取 ID 陣列

要在批次插入後擷取 ID 陣列,請執行下列操作步驟:

  1. 執行批次插入查詢。
  2. 使用 LAST_INSERT_ID() 取得第一個 ID。
  3. 透過將 ROW_COUNT()-1 加到第一個 ID 來計算最後一個 ID。
  4. 產生ID 陣列從第一個ID 到最後一個ID

範例:

-- Insert bulk rows
INSERT INTO table_name (column1, column2) VALUES (val1, val2), (val3, val4), (val5, val6);

-- Get the first ID
SET @first_id = LAST_INSERT_ID();

-- Get the number of rows inserted
SET @num_rows = ROW_COUNT();

-- Create an array of IDs
SET @ids = ARRAY();

-- Populate the array
WHILE (@i < @num_rows) DO
  SET @ids[@i] = @first_id + @i;
  SET @i = @i + 1;
END WHILE;
登入後複製

此技術在批次插入後有效地提供了新生成的ID 數組,允許在其中進行進一步處理或使用應用程式邏輯。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板