mysql - primary - sql insert auto increment
如何重置MySQL中的AUTO_INCREMENT? (12)
在“操作”選項卡下有一個非常簡單的phpmyadmin方法,您可以在表選項中設置自動增量到所需的數字。
我如何重置字段的AUTO_INCREMENT
? 我希望它再次從1
開始計數。
在ViralPatel提供了很好的選項
請注意, ALTER TABLE tablename AUTO_INCREMENT = value;
不適用於InnoDB
就像這樣:
ALTER TABLE tablename AUTO_INCREMENT = value;
參考: http://dev.mysql.com/doc/refman/5.1/en/alter-table.html : http://dev.mysql.com/doc/refman/5.1/en/alter-table.html
您也可以像這樣使用語法TRUNCATE
表: TRUNCATE TABLE table_name
謹防!! TRUNCATE TABLE your_table
將刪除 TRUNCATE TABLE your_table
所有內容 !
您可以通過以下方式重置計數器
ALTER TABLE tablename AUTO_INCREMENT = 1
對於InnoDB,您不能將auto_increment
值設置為低於或等於最高當前索引。 (引自ViralPatel ):
請注意,您不能將計數器重置為小於或等於任何已使用的值。 對於MyISAM,如果該值小於或等於當前在AUTO_INCREMENT列中的最大值,則將該值重置為當前最大值加1。 對於InnoDB,如果該值小於列中的當前最大值,則不會發生錯誤,並且當前序列值不會更改。
請參閱如何使用另一個表中的MAX值重置MySQL自動增量? 關於如何動態獲得可接受的價值。
我建議你去查詢瀏覽器並執行以下操作:
- 去模式,找到你想改變的表格。
- 右鍵單擊並選擇複製創建語句。
- 打開結果選項卡並粘貼create語句。
- 轉到create語句的最後一行,查找Auto_Increment = N,(其中N是auto_increment字段的當前數字。)
- 將N替換為1。
- 按下ctrl + enter 。
一旦你在表格中輸入新行,Auto_increment應該重置為1。
我不知道如果您嘗試添加auto_increment字段值已存在的行,會發生什麼情況。
希望這個幫助!
最好的方法是使用AI刪除字段,然後再添加AI,適用於所有表格
最適合我的解決方案:
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED;
COMMIT;
ALTER TABLE my_table MODIFY COLUMN ID INT(10) UNSIGNED AUTO_INCREMENT;
COMMIT;
它的速度很快,適用於innoDB,我不需要知道當前的最大值! 這樣自動增量計數器就會復位,並且會從存在的最大值自動啟動。
表格的自動增量計數器可以通過兩種方式(重新)設置:
要更新最新加一個ID
ALTER TABLE table_name AUTO_INCREMENT =
(SELECT (id+1) id FROM table_name order by id desc limit 1);
ALTER TABLE news_feed DROP id
ALTER TABLE news_feed ADD id BIGINT( 200 ) NOT NULL AUTO_INCREMENT FIRST ,ADD PRIMARY KEY (id)
我在我的一些腳本中使用了這個,id字段被刪除,然後添加回以前的設置,數據庫表中所有存在的字段都填入新的自動增量值,這也應該與InnoDB一起使用。
請注意,表格中的所有字段都會被重新記錄,並且會有其他ID!
ALTER TABLE tablename AUTO_INCREMENT = 1