从特定表中获得最后一个插入id的最佳方法是什么?我看到至少有四种不同的方法:
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。第三和第四种方法在大桌子上没有那么快,但是第四种方法在速度上似乎超过了第三种方法。我想知道的是,伙计们,你们是如何在现实世界的项目中完成这项任务的。
发布于 2015-01-09 15:33:50
3和4有多个问题,例如
1和2接近同一事物。它们都是特定于连接的,因此应该能够很好地处理并发用户,并且要了解上下文,这样您就可以得到预期的结果。
如果您觉得mysql_insert_id在它支持的数据类型上有一些缺点,您可以使用第一个。它应该有相同的行为。
https://stackoverflow.com/questions/27863889
复制相似问题