当前位置: 首页 > 面试题库 >

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

伍胡媚
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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



 类似资料:
  • 问题内容: MySQL如何将具有SELECT子查询的表插入返回多行的表? 我 WANT 来填充新表与此子查询返回的所有结果。我如何做到这一点而又没有收到 错误1242(21000):子查询返回的行多于1 问题答案: 将静态字符串与您的查询结合。

  • 好的,这个问题不是关于如何返回ID,而是更像是如何跳过它...我有一种情况,我使用last_insert_id()获取最后插入的行的id,但如果没有插入行,我希望得到一个零。问题如下: I INSERT...UPDATE一些记录:由于行是新插入的,因此返回所有ID 然后重复这个过程:这一次不返回ID。耶!这正是我想要的 我更改了一个列值并重复该过程:但现在返回了我更改了列值的行的ID。这让我很生气

  • 问题内容: 这个问题的答案是 社区的努力。编辑现有答案以改善此职位。它目前不接受新的答案或互动。 如果一次插入多行,数据库查询会更快吗: 喜欢 (我需要插入2-3000行) 问题答案: 使用语法的语句可以插入多行。为此,请包括多个列值列表,每个列值括在括号内并用逗号分隔。 例: 资源

  • 好吧,问题不是关于如何返回ID,而是更像是如何跳过它...我有一种情况,我使用last_insert_id()获取最后插入行的id,但如果没有插入行,我想得到一个零。问题如下: < li >我插入...更新一些记录:由于这些行是新插入的,所以返回所有id < li >然后我重复该过程:这次不返回id。耶!这正是我想要的 < li >我更改了一个列值并重复该过程:但现在返回的是我更改了列值的行的ID

  • 我试图使用console.log(结果),但似乎得到了一组方法,但我不知道如何获得所需的信息。

  • 问题内容: 在MySQL中,我会使用 但这会导致SQLite错误。SQLite的正确语法是什么? 问题答案: 在此之前,已经回答了这一问题:是否可以一次在SQLite数据库中插入多行? 要回答您对OMG Ponies的评论,请回答: 从3.7.11版本开始,SQLite确实支持多行插入。理查德·希普(Richard Hipp)评论: