在MySQL中,是否可以按顺序查询下一个自动递增字段的数字?
对于名为projects的表,表的主键 project_id 是一个自动递增字段。在插入新行之前,我想知道project_id将被分配的编号。
我如何查询?
答案 0 :(得分:4)
Rid是正确的。此问题似乎与Finding the next available id in MySQL
重复在该主题中,用户 Eimantas 提供了我使用的工作解决方案。为方便起见,这里转载:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='the_table_you_want';
在这个帖子中,感谢 eggyal 和 GavinTowey ,感谢他们的方向。
建议未来的读者注意Gavin关于竞争条件的评论(对于eggyal的回答)(即:在您之前发生的另一个数据库条目,并“窃取”您认为可以获得的ID)。
强烈建议使用eggyal所述的LAST_INSERT_ID(),而不是本答案中描述的方法。
我鼓励未来的读者支持eggyal的答案,因为这是一种更好的方法,但我希望没有进一步的回答这个答案。由于这是特别提出的问题,所以这是“正确的”答案 - 尽管是eggyals'的downvotes。我相信没有难过的感觉;如你所知,我选择自己的答案是正确答案没有任何好处。
答案 1 :(得分:1)
反过来说:首先插入新记录,然后使用LAST_INSERT_ID()
找出它的值。