[英]Can't change MySQL AUTO_INCREMENT
我正在將表從使用軟件生成的ID更新為MySQL auto_increment ID的工作。
ID字段為int(10),數據庫類型為InnoDB
將ID更新為從1開始的順序ID后,新的最高ID為122。以前,最高ID為62029832
現在,我嘗試更新auto_increment值,以便下一個插入為123。
當前的auto_increment值為62029833。
到目前為止,我已經嘗試過:
ALTER TABLE tableName AUTO_INCREMENT = 123; - - 沒運氣。 沒有錯誤,只是不粘。
INSERT INTO tableName(ID)VALUES(123); 從tableName刪除,其中ID = 123; ---仍然沒有運氣
如果有其他方法,我想避免將表截斷。
根據我的閱讀,InnoDB應該允許將值更改為123,因為當前的最大值是122,但是它的作用好像是有一個更高的值。
為了測試,我還嘗試將auto_increment更改為1000、2000、122等。
有任何想法嗎?
經過更多的工作之后,我發現了一個愚蠢的,非直覺的解決方案。
首先,從您的ID列中刪除AUTO_INCREMENT
。 我檢查了外鍵,因此必須運行:
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE `warehouse`.`addresses`
CHANGE COLUMN `aID` `aID` INT(10) UNSIGNED NOT NULL;
SET FOREIGN_KEY_CHECKS = 1;
接下來,更新AUTO_INCREMENT
值:
ALTER TABLE 'warehouse'.'addresses' AUTO_INCREMENT = 123;
最后,重新添加AUTO_INCREMENT
:
SET FOREIGN_KEY_CHECKS = 0;
ALTER TABLE `warehouse`.`addresses`
CHANGE COLUMN `aID` `aID` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
SET FOREIGN_KEY_CHECKS = 1;
希望這可以幫助一些可憐的靈魂!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.