last_insert_id()vs SELECT Max(ID)

时间:2010-07-05 15:04:04

标签: mysql lastinsertid

使用SELECT Max(ID)FROM表比使用SELECT last_insert_id()更安全,它们作为2个单独的查询运行吗?

我担心在last_insert_id()可以运行之前,会发生另一次插入。

2 个答案:

答案 0 :(得分:10)

  

使用SELECT Max(ID)FROM表比使用SELECT last_insert_id()

更安全

绝对不是,永远不会! LAST_INSERT_ID()完全由于您声明的原因而存在:其他客户端可能已进行其他插入。 LAST_INSERT_ID()始终为您提供当前连接上最后插入的ID。

mySQL Reference

答案 1 :(得分:3)

使用select max(id)只是在寻找麻烦。两个插入物几乎同时发生只是一个时间问题,你会开始在数据中看到一些疯狂。