通常我可以在 MySQL 表中插入一行并获取 last_insert_id
。但现在,我想将许多行批量插入到表中并获取 ID 数组。有谁知道我该怎么做?
有一些类似的问题,但并不完全相同。我不想将新 ID 插入任何临时表;我只想取回 ID 数组。
我可以从批量插入中检索lastInsertId吗?
带有last_insert_id()的Mysql多行插入选择语句
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我认为可以做到的唯一方法是为插入的每组行存储唯一标识符(guid) 然后选择行 ID。 例如:
您还可以使用
uuid()
在数据库中生成 guid旧线程,但只是研究了这个,所以这里是:如果您在最新版本的 MySQL 上使用 InnoDB,您可以使用
LAST_INSERT_ID()
和ROW_COUNT()
获取 ID 列表。InnoDB 保证在进行批量插入时自动递增的顺序号,前提是
innodb_autoinc_lock_mode
设置为 0(传统)或 1(连续)。 因此,您可以从LAST_INSERT_ID()
获取第一个 ID,并通过添加ROW_COUNT()-1
获取最后 ID。