2013-01-20 26 views
0

比方說,數據庫有它只有兩列ID是自動遞增名稱是文本表。當我們首先添加2個名字,然後刪除兩個名字,下次再次輸入另一個名字,ID號從3開始,而它應該從1開始。一般MySQL數據庫的理解

問題是有沒有什麼辦法可以重置該ID使得它從0開始,一旦ID的所有值被刪除,而不是從最後刪除的ID號開始繼續遞增?

回答

0

您可以使用Truncate

TRUNCATE TABLE yourtable; 

它類似於刪除您表的所有行,但有一些差異,包括自動遞增重置爲0

+1

感謝您的幫助好友! –

1

這裏的SQL查詢來重置AUTO_INCREMENT值:

ALTER TABLE tablename AUTO_INCREMENT = 0 
+0

非常感謝約瑟夫! –

0

是的,你可以

ALTER TABLE mytable AUTO_INCREMENT = 0 

但何必呢?宇宙中有很多數字,甚至有32位!

+0

感謝您的答案,但問題是,假設名稱正在打印出他們的ID作爲列表,因此,如果所有名稱被刪除,然後輸入一個新名稱,打印出來的ID不會是1,但ID的計數應該從1開始。 –

+0

@ user1870691 - 請閱讀你的OP,即「問題是,有沒有辦法重置ID,以便它從0開始......」 –

+0

請記住你的想法。 –

0

我認爲這會做你正在尋找的東西。

ALTER TABLE table_name AUTO_INCREMENT = 1;

0

ALTER TABLE yourtable AUTO_INCREMENT = 1

+0

謝謝Trevor! –

0

有肯定的是!

ALTER TABLE 'mytable' AUTO_INCREMENT = 0;

這將重置自動增量回落到0,並從那裏繼續。

一個從MySQL-dev一般注:

您可以在計數器不能復位爲小於或等於任何已經被使用的值。對於MyISAM,如果該值小於或等於當前在AUTO_INCREMENT列中的最大值,則該值將被重置爲當前最大值加1。對於InnoDB,如果該值小於列中的當前最大值,則不會發生錯誤,並且當前序列值不會更改。