生成的ID我想要执行的形式的查询:恢复从多个插入查询
INSERT INTO表(FIELD1,FIELD2)SELECT FIELD1,FIELD2 FROM表WHERE ID。在(4,8,15,16, 23,42)
其中,id是table
的auto_increment主键。
执行这个语句后,我想知道刚才生成的所有新ID是什么。我怎样才能恢复这些信息?我感兴趣的是(可能)在存储过程中这样做,并将新生成的ID列表返回给我的应用程序代码(可以说PHP),我希望列表与IN子句中出现的内容相关的SELECT子查询。我认为这会为我在应用程序代码中节省大量顺序INSERT。这是可以实现的吗?
做一个重写到MySQL,你可能有一个点:) – Wrikken 2010-07-29 21:54:59
当它完全错过了MySql标签。不知道如何...虽然唯一不会通用的大多数品种的Sql将是Max()的调用,我会认为... – AllenG 2010-07-29 21:58:08
然而,这是一个有趣的答案...如果我只是保留了一个只有id字段的虚拟表,然后有人希望执行这种查询,可以首先对虚拟表进行插入操作,从中可以恢复插入标识,从而成为它们的transaction_id“ticket”。然后我可以在INSERT INTO ... SELECT语句中选择它作为常量。只要插入发生“按顺序”,我应该随后可以通过在我的事务标签上按SELECT排序来恢复它们......想法? – vicatcu 2010-07-29 22:04:40