在 MySQL 中进行批量插入和 ID 检索
将多行插入 MySQL 表并检索新 ID 是一项常见要求,但可能不会立即显而易见地实施。本文档解释了如何使用 MySQL 的 LAST_INSERT_ID() 和 ROW_COUNT() 函数来实现此目的,特别是在使用 InnoDB 存储引擎时。
InnoDB 的顺序 ID 生成
使用时在 MySQL 的 InnoDB 存储引擎中,批量插入会维护自动增量 ID 的顺序分配,前提是innodb_autoinc_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中文网其他相关文章!