首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >last_insert_id的实现

问last_insert_id的实现
EN

Stack Overflow用户
提问于 2015-01-09 15:28:20
回答 1查看 48关注 0票数 0

从特定表中获得最后一个插入id的最佳方法是什么?我看到至少有四种不同的方法:

代码语言:javascript
复制
1. SELECT LAST_INSERT_ID()
2. mysql_insert_id()
3. SELECT max(id) FROM table
4. SELECT id FROM table ORDER BY id DESC LIMIT 1

第一种方法优于第二种方法,因为如果id具有bigint类型,则第二种方法返回0。但问题是--我不能确定我得到的id来自我想要的表,因为LAST_INSERT_ID()在整个数据库中返回最后一个id。第三和第四种方法在大桌子上没有那么快,但是第四种方法在速度上似乎超过了第三种方法。我想知道的是,伙计们,你们是如何在现实世界的项目中完成这项任务的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-09 15:33:50

3和4有多个问题,例如

  • 他们不处理并发用户
  • 它们不能按id顺序处理循环id或其他类型的跳过。
  • ids也可以翻页,这不是由它们处理的。

1和2接近同一事物。它们都是特定于连接的,因此应该能够很好地处理并发用户,并且要了解上下文,这样您就可以得到预期的结果。

如果您觉得mysql_insert_id在它支持的数据类型上有一些缺点,您可以使用第一个。它应该有相同的行为。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27863889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档