在 MySQL 中,是否可以按顺序查询下一个数字以获取自增字段?
对于名为 projects 的表,该表的主键project_id是一个自动递增字段。在插入新行之前,我想知道 project_id 将分配的数字。
我该如何查询?
在 MySQL 中,是否可以按顺序查询下一个数字以获取自增字段?
对于名为 projects 的表,该表的主键project_id是一个自动递增字段。在插入新行之前,我想知道 project_id 将分配的数字。
我该如何查询?
里德是正确的。这个问题似乎与Find the next available id in MySQL重复
在该线程中,用户Eimantas提供了我使用的工作解决方案。为方便起见,在此转载:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='the_table_you_want';
不过,感谢 egyal和GavinTowey在这个线程中的指导。
建议未来的读者注意 Gavin 关于比赛条件的评论(对 egyal 的回答)(即:另一个数据库条目发生在你之前的一瞬间,并“窃取”了你认为你会得到的 ID)。
强烈建议使用 eggyal 描述的 LAST_INSERT_ID() ,而不是本答案中描述的方法。
我鼓励未来的读者支持 eggyal 的答案,因为它是一种更好的方法,但我希望不要再对这个答案投反对票。由于这是具体提出的问题,因此这是“正确”的答案-尽管有鸡蛋的反对意见。我相信没有难过的感觉;如您所知,选择我自己的答案作为正确答案对我没有任何好处。
反过来做:先插入新记录,然后使用LAST_INSERT_ID()
.