当前位置: 首页 > 知识库问答 >
问题:

获取在同一个mysql表中INSERT INTO后最后插入的id的列表

骆利
2023-03-14

我需要一个MySQL函数,它可以在下面的SQL指令之后获取最后插入的id(不仅仅是最后一个)的列表:

insert into my_table (c1, c2, ...)
select c1, c2, ...
from my_table
where id IN (1,2,3)

更清楚地说,我想有这张桌子(我的桌子):

id | c1 | c2
-------------
1  | a  | b  
2  | a  | c
3  | b  | c
4  | .. | ..
.. | .. | ..

将在INSERT INTO语句之后复制新值,表现在显示如下:

id | c1 | c2
-------------
1  | a  | b  
2  | a  | c
3  | b  | c
4  | .. | ..
.. | .. | ..
.. | .. | ..
33 | a  | b
34 | a  | c
35 | b  | c

此函数应返回以下列表:33,34,35

我认为一个临时解决方案是获取最后一个插入的id,然后根据复制的行数“手动”创建一个列表33、34、35。

但是我不知道是否存在SQL的本机函数!

共有1个答案

柳飞飙
2023-03-14

我相信您正在寻找这个简单的问题:

select id
from my_table
where id >= LAST_INSERT_ID();

如留档所述:

如果没有参数,LAST_INSERT_ID()返回一个BIGINT UNSIGNED(64位)值,表示作为最近执行的INSERT语句的结果,成功插入AUTO_INCREMENT列的第一个自动生成值。

 类似资料:
  • 问题内容: 我有一个经常插入新数据的表。我需要获取表的最后一个ID。我怎样才能做到这一点? 类似于吗? 问题答案: 如果您使用的是PDO,请使用。 如果您使用的是Mysqli,请使用。 如果您仍在使用Mysql: 请不要在新代码中使用函数。它们不再维护,已正式弃用。看到 红色框了 吗?了解 准备的语句 来代替,并使用 PDO 或库MySQLi -本文将帮助你决定哪些。如果您选择PDO,这是一个很好

  • 问题内容: 我想获取表中最后一个ID插入的值。我该怎么做? 问题答案: 好吧,我使用的解决方案是: 这将从插入数据库的最后一行获取id列:)

  • 这是我的密码 我想获取特定记录的最后一个插入id。我试过使用雄辩的ORM。但它不起作用。 任何帮助都将不胜感激。 非常感谢。

  • 问题内容: 我有一个查询,我想插入最后一个ID。字段ID是主键,并且是自动递增的。 我知道我必须使用以下语句: 该语句适用于如下查询: 但是,如果我想使用以下语句获取ID: 我收到此错误: 我究竟做错了什么? 问题答案: 那是因为那是SQL函数,而不是PHP。您可以使用。 喜欢: 如果要使用SQL而不是PDO API进行操作,则可以像普通的select查询一样进行操作:

  • 问题内容: 我正在尝试获取类似mysql_insert_id()的mysql命令;它检索最后插入的行的auto_increment ID。我该怎么做才能在Java中获得它? 我的姓氏声明为INT。我不知道在rs.get中使用什么以及参数。 问题答案: 尝试使用别名

  • 问题内容: …并且该手册似乎表明您可以随时拨打电话,并且可以正常使用。但是这个… …似乎说明它必须在事务内。所以我的问题是:我可以在查询之前(只要没有交易)就等我想要的时间吗?面对许多并发连接,这可靠吗? 问题答案: PostgreSQL中的INSERT,UPDATE和DELETE具有RETURNING子句,这意味着您可以执行以下操作: 然后查询将为插入的每一行返回它为id插入的值。将往返保存到服