2012-07-20 126 views
2

我試圖改變自動增量值,使之從一個特定的編號開始:自動增量不改變

ALTER TABLE batchinfo AUTO_INCREMENT = 20000; 

但是,當我查詢的記錄,舊的編號(1,2 .. )仍然存在,儘管該聲明看起來很成功。我正在使用MySQL工作臺。可能是什麼問題呢 ?

+1

它隻影響你插入的新記錄。它不會影響您的現有值。 – 2012-07-20 13:19:42

回答

2

該查詢所做的更改下一個AUTO_INCREMENT值。它不會改變現有的值。

如果你已經有了值1,2,3,... 100,然後更改AUTO_INCREMENT 20000,下一個輸入的值將不101,但20000

5

改變AUTO_INCREMENT不改變過去產生的值,它只設置下一個生成的值。如果你想改變過去的價值,那麼你將需要執行UPDATE。例如,像這樣:

UPDATE batchinfo SET id = id + 19999; 

小心,你沒有任何其他表引用此列,或它們的引用將失效。 (除非那些引用被正確指出;只有InnoDB表支持外鍵,並且所有這些外鍵都必須用ON UPDATE CASCADE來定義,以達到預期的效果。)

+0

+1因爲很明顯爲什麼人工智能不會改變所有過去的價值觀,如何改變所有過去的價值觀和謹慎提及。好答案。 – 2012-07-20 13:22:02

1

您的查詢將設置一個新的起始值從現在開始生成的自動增量值。它不會更新已存儲在表格中的自動增量值。