2

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

ALTER TABLE batchinfo AUTO_INCREMENT = 20000;

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

4

3 回答 3

5

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

UPDATE batchinfo SET id = id + 19999;

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

于 2012-07-20T13:19:32.287 回答
2

该查询执行下一个 AUTO_INCREMENT值的更改。它不会更改现有值。

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

于 2012-07-20T13:19:24.347 回答
1

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

于 2012-07-20T13:20:06.173 回答