我試圖改變自動增量值,使之從一個特定的編號開始:自動增量不改變
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