MySQL查询MYSQL自增字段的下一个序号

问题描述 投票:0回答:2

在MySQL中,是否可以查询自增字段的顺序下一个数字?

对于名为projects的表,该表的主键project_id是一个自动递增字段。在插入新行之前,我想知道project_id将被分配什么数字。

如何查询?

mysql
2个回答
5
投票

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() 而不是本答案中描述的方法。

尽管如此,这个答案在许多合法情况下都很有用,包括:学习/研究情况、开发测试情况、低用户/低使用数据库等。


1
投票

反过来做:先插入新记录,然后使用

LAST_INSERT_ID()
找出其值。

© www.soinside.com 2019 - 2024. All rights reserved.