自动增量不会改变

时间:2012-07-20 13:16:48

标签: mysql

我正在尝试更改自动增量值,使其从特定数字开始:

ALTER TABLE batchinfo AUTO_INCREMENT = 20000;

但是当我查询记录时,旧的编号(1,2 ...)仍然存在,但是,该陈述似乎是成功的。我正在使用MySQL工作台。可能是什么问题?

3 个答案:

答案 0 :(得分:5)

更改AUTO_INCREMENT不会更改过去生成的值,它只会设置下一个生成的值。如果您想更改过去的值,则需要执行UPDATE。例如,像这样:

UPDATE batchinfo SET id = id + 19999;

小心您没有引用此列的任何其他表,否则它们的引用将失效。 (除非正确注意这些引用;只有InnoDB表支持外键。并且所有这些外键都必须使用ON UPDATE CASCADE定义才能使此命令具有预期的效果。)

答案 1 :(得分:2)

该查询正在更改下一个 AUTO_INCREMENT值。它不会改变现有值。

如果您已经拥有值1,2,3,... 100,然后将AUTO_INCREMENT更改为20000,则下一个输入的值将不是101,而是20000。

答案 2 :(得分:1)

您的查询为从现在开始生成的自动增量值设置新的起始值。它不会更新已存储在表中的自动增量值。