一尘不染

如何在MySQL表中插入许多行并返回新的ID?

mysql

通常,我可以在MySQL表中插入一行并last_insert_id取回。但是,现在,我想将许多行批量插入表中并获取ID数组。有人知道我该怎么做吗?

有一些类似的问题,但并不完全相同。我不想将新ID插入任何临时表;我只想找回ID数组。

我可以从批量插入中检索lastInsertId吗?

带有last_insert_id()的MySQL多行插入选择语句


阅读 267

收藏
2020-05-17

共1个答案

一尘不染

旧线程,但只是研究了一下,所以去了:如果您在最新版本的MySQL上使用InnoDB,则可以使用LAST_INSERT_ID()和获得ID列表ROW_COUNT()

如果innodb_autoinc_lock_mode设置为0(传统)或1(连续),InnoDB保证批量插入时自动递增的序号。因此,您可以通过添加获取第
一个 ID LAST_INSERT_ID()最后 一个 ID ROW_COUNT()-1

2020-05-17