使用MYSQL LAST_INSERT_ID()来检索插入行的ID?

Ale*_*afi 5 php mysql select lastinsertid

我有一张桌子,里面有一个专栏AUTO INCREMENT.我必须在插入新行时检索此列的值(我需要新行的值).我已经阅读了很多关于它并找到了不同的解决方案,一个是使用SELECT LAST_INSERT_ID().我听说过很多不同的事情.我可以或不可以使用它吗?我担心另一个连接可能在我能够调用之前插入一个新行SELECT LAST_INSERT_ID(),因此得到错误的ID.

总结一下,使用安全SELECT LAST_INSERT_ID()吗?如果没有,我如何以安全的方式检索最后插入的ID?

Bha*_*hah 13

我不认为你需要担心你在这里提到的情况.

从Mysql文档:
生成的ID在每个连接的基础上在服务器中维护.这意味着函数返回给定客户端的AUTO_INCREMENTAUTO_INCREMENT是为该客户端影响列的最新语句生成的第一个值.此值不受其他客户端的影响,即使它们生成AUTO_INCREMENT自己的值.此行为可确保每个客户端都可以检索自己的ID,而无需关心其他客户端的活动,也无需锁定或事务.

有关详细信息,请参阅 this

虽然,如果他们有不同的意见,我很乐意从别人那里读到.