在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 陣列,請執行下列操作步驟:
範例:
-- 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中文網其他相關文章!