在MySQL多行插入中获取插入ID

时间:2013-10-13 08:52:03

标签: mysql sql mysqli mysql-insert-id

我从GMail导入联系人,联系人可能会遇到数十万个。

我有这个查询做INSERT

$sql="INSERT IGNORE INTO lists (account_id, createdby, first_name, last_name, email, phone, date_created, list_type) VALUES $bindparam";
$importObj= otherquery($sql, $bind, $params);

我需要获取插入ID以使我能够在另一个表中进一步插入其详细信息。

考虑到我无法在一次导入中运行1,000个查询或更多查询,并且我的自动增量可能不一致,我该怎么做呢? 该应用程序也被许多人同时使用,这可能意味着一次可能有两个以上的人运行插入(不仅仅是通过导入)。

1 个答案:

答案 0 :(得分:0)

另一个问题出于错误的假设。

  

考虑到我无法在一次导入中运行1,000个查询或更多

为什么要考虑这个? PHP和mysql都没有对查询数量有这样的限制。

  

我的自动增量也可能不一致。

同样有疑问的用户已经有数百个问题了,他们实际上从来没有遇到任何自动增量一致性的问题,但他们提前担心这个问题。所有人都有安慰的答案。 Mysql开发人员并不像你想象的那样那么傻。你的自动增量不会发生任何错误。

我只希望您在某些后台进程中排队导入,而不是让用户在线等待它。以这种方式完成导入,您应该不会遇到查询数量或脚本执行时间等问题。只需创建一个队列,可以是基于mysql表的自制软件,也可以使用像RabbitMQ这样的专用软件,然后让一些后端服务器在后台进行所有导入。