如何在PDO中创建SQL查询,知道下一个ID是什么?我已经对$sql->lastInsertId()
和SELECT LAST_INSERT_ID() FROM my_table
进行了测试,但根据这些情况,当我的表中最后一个ID为66时,最后一个ID是116。
提前致谢!
答案 0 :(得分:1)
LAST_INSERT_ID()
返回使用自动增量插入的最后一个ID。实际上从那时起,记录可能会被删除(可能全部都是67-116),但这并不会改变自动增量位置,下一个id将是117.
如果您想了解表格中最大的ID,那么SELECT max(id) FROM table
可以为您提供帮助。
答案 1 :(得分:1)
我希望说服你改变主意:
id只是一个抽象值,只是偶然的数字。它的目的是独特。这意味着永远不会重复使用任何值。所以,它总是必须是一个全新的id。
这就是为什么你的数据库使它成为116而不是66 这就是为什么你必须满足于116,而不是强迫它为66
更不用说lastInsertId()
和SELECT LAST_INSERT_ID()
都保证是正确的值,同时接受了建议使用max(lastID)
的接受答案。
答案 2 :(得分:0)
如果ID列上有自动递增,则下一个ID并不总是last item's ID + 1
。因此,如果插入两个元素(ID 1和2),删除第二个元素并再次插入新元素,其ID将为3,而不是2,但它也取决于您的数据库引擎。
但是,如果您想获得最后一个项目的ID,您可以通过降序ID对该列进行排序并选择第一个项目的ID
答案 3 :(得分:-1)
会select max(lastID) from my_table
工作吗? (假设包含上次创建的ID的列名称称为lastID)