MySQL-php的pdo数据库引擎使用lastInsertId在高并发情况下会不会返回错误的id?
pdo引擎的lastInsertId会返回用户插入数据库的最新一个自增id值,这里有点理解疑问?
是返回本数据库的最后插入的一个自增id,
还是只返回现在使用用户的最后插入的自增id?如果是这个?用数据库链接还是session还是什么来确定这个用户?
主要是实际项目中,要做个文章版本系统,需要一个功能,
版本系统表:
id versionid content
更新文章不是updat,而是insert,所以一篇文章会有好多id不同,versionid相同的版本,就是第一次插入文章时的id,检索文章不用自增id而是用版本id,查询某版本id下的最新一篇。
第一次发布文章,插入新内容到数据库后,马上要搜索这篇新插入文章的id并把id值update到本条信息的版本字段内,现在用lastinsertid。
我担心的是,如果网站并发高了,在用户刚刚插入文章还没有更新文章的版本id的时候,又有其他用户插入新文章,那lastinsertid会不会获取到其他用户插的新文章id而不是原来本用户的最新id???
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不会。
LAST_INSERT_ID 是基于单个数据库连接的,它会返回当前连接最后一次insert操作的ID,并不是整个数据库最后一次insert操作。