我正在尝试更改自动增量值以使其从特定数字开始:
ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
但是当我查询记录时,旧的编号 (1,2...) 仍然存在,尽管该语句似乎成功了。我正在使用 MySQL 工作台。可能是什么问题呢 ?
我正在尝试更改自动增量值以使其从特定数字开始:
ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
但是当我查询记录时,旧的编号 (1,2...) 仍然存在,尽管该语句似乎成功了。我正在使用 MySQL 工作台。可能是什么问题呢 ?
更改AUTO_INCREMENT
不会更改过去生成的值,它只会设置下一个生成的值。如果要更改过去的值,则需要执行UPDATE
. 例如,像这样:
UPDATE batchinfo SET id = id + 19999;
请注意,您没有任何其他表引用此列,否则它们的引用将无效。(除非这些引用被正确注明;只有 InnoDB 表支持外键。并且所有这些外键都必须定义ON UPDATE CASCADE
为该命令具有预期效果。)
该查询执行下一个 AUTO_INCREMENT
值的更改。它不会更改现有值。
如果您已经有值 1、2、3、... 100,然后更改AUTO_INCREMENT
为 20000,则下一个输入的值将不是 101,而是 20000。
您的查询为从现在开始生成的自动增量值设置了一个新的起始值。它不会更新已经存储在表中的自动增量值。