如何知道 mysql 中的下一个自动增量 ID 是啥? [复制]
Posted
技术标签:
【中文标题】如何知道 mysql 中的下一个自动增量 ID 是啥? [复制]【英文标题】:How to know what would be the next auto increment id in mysql? [duplicate]如何知道 mysql 中的下一个自动增量 ID 是什么? [复制] 【发布时间】:2016-03-31 23:10:35 【问题描述】:假设我有这样一张桌子:
----Id-------Data---
| 1 | Data1 |
--------------------
| 2 | Data2 |
--------------------
| 3 | Data3 |
--------------------
如果我运行这个查询
从表中选择 MAX(id)
它将显示结果 3,如果我用 1 递增它,通常这将是下一个自动递增的 id。
如果我删除记录 其中 id 为 3,然后当我再次运行此查询时意味着
从表中选择 MAX(id)
它将显示 2,如果我用 1 递增它,那么它将是 3。现在,如果我插入一条新记录,自动增量 ID 将为 4。
现在我的问题是如何知道下一个确切的自动增量 ID 是什么?
【问题讨论】:
【参考方案1】:要知道下一个自动递增的值,您必须使用 information_schema.TABLES 表。
试试这个:
SELECT T.AUTO_INCREMENT
FROM information_schema.TABLES T
WHERE T.TABLE_SCHEMA = 'YourDBName'
AND T.TABLE_NAME = 'YourTableName';
【讨论】:
@AshisBiswas 不客气... @AshisBiswas:是的,但是除非你能保证没有其他连接到数据库,否则这个值可能会在你使用之前改变。这是一种不好的做事方式,如果您解释为什么您认为需要这样做,那么我相信我们可以帮助您以更好的方式 您为什么需要这样做?答:你不会。 @Borodin 我想把它用于this purpose @AshisBiswas:好的,这不会生成一个远程随机的数字。事实上,大多数时候它只会在行 ID 中添加一个。它使用的是 last 行 ID,而不是 next 行 ID,正如您在此处询问的那样【参考方案2】:使用 LAST_INSERTED_ID
作为
SELECT LAST_INSERT_ID()
;
【讨论】:
感谢您的回答。但我认为这并不完美。 只有在插入记录后才会生效。删除记录后将无法使用 虽然这不是问题的正确答案,但可能是解决背后问题的正确方法。以上是关于如何知道 mysql 中的下一个自动增量 ID 是啥? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我应该为我的自动增量 ID MySQL 使用啥大小的 INT