我试图改变自动增量值,使之从一个特定的编号开始:自动增量不改变
ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
但是,当我查询的记录,旧的编号(1,2 .. )仍然存在,尽管该声明看起来很成功。我正在使用MySQL工作台。可能是什么问题呢 ?
我试图改变自动增量值,使之从一个特定的编号开始:自动增量不改变
ALTER TABLE batchinfo AUTO_INCREMENT = 20000;
但是,当我查询的记录,旧的编号(1,2 .. )仍然存在,尽管该声明看起来很成功。我正在使用MySQL工作台。可能是什么问题呢 ?
该查询所做的更改下一个AUTO_INCREMENT
值。它不会改变现有的值。
如果你已经有了值1,2,3,... 100,然后更改AUTO_INCREMENT
20000,下一个输入的值将不101,但20000
改变AUTO_INCREMENT
不改变过去产生的值,它只设置下一个生成的值。如果你想改变过去的价值,那么你将需要执行UPDATE
。例如,像这样:
UPDATE batchinfo SET id = id + 19999;
小心,你没有任何其他表引用此列,或它们的引用将失效。 (除非那些引用被正确指出;只有InnoDB表支持外键,并且所有这些外键都必须用ON UPDATE CASCADE
来定义,以达到预期的效果。)
+1因为很明显为什么人工智能不会改变所有过去的价值观,如何改变所有过去的价值观和谨慎提及。好答案。 – 2012-07-20 13:22:02
您的查询将设置一个新的起始值从现在开始生成的自动增量值。它不会更新已存储在表格中的自动增量值。
它只影响你插入的新记录。它不会影响您的现有值。 – 2012-07-20 13:19:42