mysql - primary - sql insert auto increment




如何重置MySQL中的AUTO_INCREMENT? (12)

在“操作”選項卡下有一個非常簡單的phpmyadmin方法,您可以在表選項中設置自動增量到所需的數字。

我如何重置字段的AUTO_INCREMENT ? 我希望它再次從1開始計數。


ViralPatel提供了很好的選項

請注意, ALTER TABLE tablename AUTO_INCREMENT = value; 不適用於InnoDB



您也可以像這樣使用語法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自動增量? 關於如何動態獲得可接受的價值。


我建議你去查詢瀏覽器並執行以下操作:

  1. 去模式,找到你想改變的表格。
  2. 右鍵單擊並選擇複製創建語句。
  3. 打開結果選項卡並粘貼create語句。
  4. 轉到create語句的最後一行,查找Auto_Increment = N,(其中N是auto_increment字段的當前數字。)
  5. 將N替換為1。
  6. 按下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,我不需要知道當前的最大值! 這樣自動增量計數器就會復位,並且會從存在的最大值自動啟動。


表格的自動增量計數器可以通過兩種方式(重新)設置:

  1. 通過執行查詢,就像其他人已經解釋的一樣:

    ALTER TABLE <table_name> AUTO_INCREMENT=<table_id>;

  2. 使用工作台或其他可視化數據庫設計工具。 我將在Workbench中展示它是如何完成的 - 但在其他工具中也不會有太大的不同。 通過在所需表格上單擊鼠標右鍵並從上下文菜單中選擇Alter table 。 在底部,您可以看到所有可用的選項來更改表格。 選擇Options ,你會得到這個表格:

    然後,只需在圖像中顯示的Auto increment字段中設置所需的值即可。 這將基本上執行第一個選項中顯示的查詢。


要更新最新加一個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




auto-increment