2
MySql的LAST_INSERT_ID()函数是否保证正确?
当我对具有列INSERT的表进行单行处理时,AUTO_INCREMENT我想使用该LAST_INSERT_ID()函数返回AUTO_INCREMENT为该行存储的新的'ed值。 由于许多Microsoft SQL Server的开发者和管理员毫无疑问都知道在SQL Server(等效功能SCOPE_IDENTITY和@@IDENTITY)一直没有没有问题。 我知道MySQL文档状态: 生成的ID在每个连接的服务器中维护。这意味着函数返回给定客户端的AUTO_INCREMENT值是为该客户端影响AUTO_INCREMENT列的最新语句生成的第一个值。该值不会受到其他客户端的影响,即使它们生成AUTO_INCREMENT自己的值也是如此。此行为可确保每个客户端都可以检索自己的ID,而不必担心其他客户端的活动,也不需要锁或事务。 (资源) 甚至甚至说: 从多个客户端同时使用LAST_INSERT_ID()和AUTO_INCREMENT列是完全有效的。 (资源) 是否存在任何可能导致LAST_INSERT_ID()无法返回正确值的已知风险或情况? 我在CentOS 5.5 x64和Fedora 16 x64和InnoDB引擎上使用MySQL 5.5。