2011-03-13 219 views
4

我需要从单个查询中返回所有插入的ID(来自自动递增的字段),该查询将类似20+行的内容插入到MySQL数据库中。我有这样的东西到目前为止:获取多个INSERT的唯一ID

INSERT INTO [tablename] (...) VALUES (...), (...), (...); 

我将如何修改上述查询来取回所有插入的ID?

我发现了几个建议使用DECLARE的主题,但是当我尝试运行查询时,PhpMyAdmin总是返回一个错误。

谢谢!

+0

通过上面的查询,我可以得到第一个插入的ID加上受影响的行数,所以我可以用这种方式计算ID,但问题是如果结果是正确的。 MySQL中的查询是链接还是可以并行发生? – shabushabu 2011-03-13 16:01:07

+0

我的数据库是MyISAM类型的。只是读某个地方,这种类型的查询不会同时发生,所以我应该没问题,根据第一个ID和受影响的行计算ID,对吧? – shabushabu 2011-03-13 16:26:07

回答

1

MyISAM应该为你的插入锁定表格,所以感觉你可以确定获得一个值并且抵消受影响的行数。

为了确保安全,如何添加'batch'列并插入基于会话的变量?然后,您可以选择具有该值的ID。不是很好,但...