【发布时间】:2013-11-28 08:32:10
【问题描述】:
在 MySQL 中,是否可以按顺序查询下一个数字以获得自增字段?
对于名为 projects 的表,表的主键 project_id 是一个自动递增字段。在插入新行之前,我想知道 project_id 将分配的数字。
如何查询?
【问题讨论】:
-
现在为什么在我发布问题时没有建议这些..?我检查了几个... =^/谢谢,我会检查出来的。
标签: mysql
在 MySQL 中,是否可以按顺序查询下一个数字以获得自增字段?
对于名为 projects 的表,表的主键 project_id 是一个自动递增字段。在插入新行之前,我想知道 project_id 将分配的数字。
如何查询?
【问题讨论】:
标签: mysql
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 关于竞争条件的评论(对 egyal 的回答)(即:另一个 DB 条目发生在您之前的瞬间,并“窃取”了您认为会获得的 ID)。
强烈建议使用 eggyal 描述的 LAST_INSERT_ID() ,而不是本答案中描述的方法。
我鼓励未来的读者支持 eggyal 的答案,因为这是一种更好的方法,但我希望不要再对这个答案投反对票。由于这是具体提出的问题,因此这是“正确” 的答案——尽管eggyals 不赞成。我相信没有难过的感觉;如您所知,选择我自己的答案作为正确答案对我没有任何好处。
【讨论】:
反过来做:先插入新记录,然后使用LAST_INSERT_ID()找出它的值。
【讨论】: