在MySQL中,是否可以查询自增字段的顺序下一个数字?
对于名为projects的表,该表的主键project_id是一个自动递增字段。在插入新行之前,我想知道project_id将被分配什么数字。
如何查询?
Rid 是正确的。这个问题似乎与Finding the next available id in MySQL
重复在该线程中,用户 Eimantas 提供了我使用的工作解决方案。为了方便转载于此:
SELECT Auto_increment FROM information_schema.tables WHERE table_name='the_table_you_want';
请注意,您不能写:
...WHERE table_name=`the_table_you_want`...
因为反引号表示列名,而不是表名。
警告:
建议未来的读者注意 Gavin 关于竞争条件的评论(eggyal 的答案)(即:另一个数据库条目在您的条目之前一瞬间发生,并“窃取”您认为会获得的 ID)。
如果竞争条件的可能性很小,建议使用 Eggyal 描述的 LAST_INSERT_ID() 而不是本答案中描述的方法。
尽管如此,这个答案在许多合法情况下都很有用,包括:学习/研究情况、开发测试情况、低用户/低使用数据库等。
LAST_INSERT_ID()
找出其值。