在同一实例中由多个用户同时插入值时获取最后插入的id

时间:2015-05-13 08:29:25

标签: php mysql

我正在使用mysql_insert_id()来抓取最后插入的id。关于在同一个实例中多个用户同时插入值时,我有一个混淆id。它是否给出了我插入的那个或它是否比较了同一个实例中的最后一个查询?

1 个答案:

答案 0 :(得分:1)

您问题的简短回答是:您插入的最后一个问题。

这就是原因。

检索最后插入的id的php函数是mysql库函数mysql_insert_id()的包装器。服务器基于每个连接跟踪最近生成的AUTO_INCREMENT值,并且不受另一个生成AUTO_INCREMENT值的连接的影响。

20.6.14.3 How to Get the Unique ID for the Last Inserted Row

  

对于LAST_INSERT_ID(),维护最近生成的ID   服务器基于每个连接。它不会被另一个人改变   客户。如果您更新另一个AUTO_INCREMENT,它甚至不会更改   具有非魔法值的列(即,非NULL和值的值)   不是0)。使用LAST_INSERT_ID()和AUTO_INCREMENT列   同时来自多个客户端是完全有效的。每个客户   将收到客户端最后一条语句的最后插入ID   执行。