通常,我可以在MySQL表中插入一行并last_insert_id取回。但是,现在,我想将许多行批量插入表中并获取ID数组。有人知道我该怎么做吗?
last_insert_id
有一些类似的问题,但并不完全相同。我不想将新ID插入任何临时表;我只想找回ID数组。
我可以从批量插入中检索lastInsertId吗?
带有last_insert_id()的MySQL多行插入选择语句
旧线程,但只是研究了一下,所以去了:如果您在最新版本的MySQL上使用InnoDB,则可以使用LAST_INSERT_ID()和获得ID列表ROW_COUNT()。
LAST_INSERT_ID()
ROW_COUNT()
如果innodb_autoinc_lock_mode设置为0(传统)或1(连续),InnoDB保证批量插入时自动递增的序号。因此,您可以通过添加获取第 一个 ID LAST_INSERT_ID()和 最后 一个 ID ROW_COUNT()-1。
innodb_autoinc_lock_mode
ROW_COUNT()-1