所以有很多关于LAST_INSERT_ID()的问题和答案。如果您要插入单行并需要该 ID 的返回值来处理事情,这很好用,但是如果您正在执行组插入并需要所有 AUTO_INCREMENT ID 的返回值怎么办?
拿这张表:
Name | Data1 | Data2 | Data3
---------------------------------------------------
Name 1 | blah | Herp | Derp
Name 2 | rwwe | asdf | 3445
Name 3 | asdf | asdf | 8678
Name 1 | guih | adsf | 3565
Name 1 | asfg | rwer | 7877
我需要将 的值插入Name 1
到表中,然后将其primary key
插入 Data1、2 和 3 中的值到其他具有主键约束的表中。
问题是“名称”不是唯一的,所以我无法查询原始/临时表并以这种方式获取值。
根据文档,last_insert_id()在单个 INSERT 语句的上下文中运行。反正我测试过了。
我还尝试将值写回表中,但当然 SQL 对集合进行操作:
insert into test_fetch_id(lastname,Last_ID)
select RESOURCE_ID, last_insert_id() from resources r limit 100;
给我:
任何帮助将不胜感激。