我正在尝试更改自动增量值,使其从特定数字开始:
ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
但是当我查询记录时,旧的编号(1,2 ...)仍然存在,但是,该陈述似乎是成功的。我正在使用MySQL工作台。可能是什么问题?
答案 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)
您的查询为从现在开始生成的自动增量值设置新的起始值。它不会更新已存储在表中的自动增量值。