比方說,數據庫有它只有兩列ID是自動遞增和名稱是文本的表。當我們首先添加2個名字,然後刪除兩個名字,下次再次輸入另一個名字,ID號從3開始,而它應該從1開始。一般MySQL數據庫的理解
問題是有沒有什麼辦法可以重置該ID使得它從0開始,一旦ID的所有值被刪除,而不是從最後刪除的ID號開始繼續遞增?
比方說,數據庫有它只有兩列ID是自動遞增和名稱是文本的表。當我們首先添加2個名字,然後刪除兩個名字,下次再次輸入另一個名字,ID號從3開始,而它應該從1開始。一般MySQL數據庫的理解
問題是有沒有什麼辦法可以重置該ID使得它從0開始,一旦ID的所有值被刪除,而不是從最後刪除的ID號開始繼續遞增?
這裏的SQL查詢來重置AUTO_INCREMENT
值:
ALTER TABLE tablename AUTO_INCREMENT = 0
非常感謝約瑟夫! –
是的,你可以
ALTER TABLE mytable AUTO_INCREMENT = 0
但何必呢?宇宙中有很多數字,甚至有32位!
感謝您的答案,但問題是,假設名稱正在打印出他們的ID作爲列表,因此,如果所有名稱被刪除,然後輸入一個新名稱,打印出來的ID不會是1,但ID的計數應該從1開始。 –
@ user1870691 - 請閱讀你的OP,即「問題是,有沒有辦法重置ID,以便它從0開始......」 –
請記住你的想法。 –
我認爲這會做你正在尋找的東西。
ALTER TABLE table_name AUTO_INCREMENT = 1;
ALTER TABLE yourtable AUTO_INCREMENT = 1
謝謝Trevor! –
有肯定的是!
ALTER TABLE 'mytable' AUTO_INCREMENT = 0;
這將重置自動增量回落到0,並從那裏繼續。
一個從MySQL-dev一般注:
您可以在計數器不能復位爲小於或等於任何已經被使用的值。對於MyISAM,如果該值小於或等於當前在AUTO_INCREMENT列中的最大值,則該值將被重置爲當前最大值加1。對於InnoDB,如果該值小於列中的當前最大值,則不會發生錯誤,並且當前序列值不會更改。
感謝您的幫助好友! –