大家好有任何SQL功能將所有的auto_increment IDS?Mysql的重置AUTO_INCREMENT不是新的ID,但是對於所有的(還舊IDS)
我的意思是,我有這種情況(ID = 1,ID2 = 2,ID3 = 3)
一旦我刪除ID我想退回這種情況(ID2 = 1,ID3 = 2)等等。
需要我一個腳本來做到這一點?
大家好有任何SQL功能將所有的auto_increment IDS?Mysql的重置AUTO_INCREMENT不是新的ID,但是對於所有的(還舊IDS)
我的意思是,我有這種情況(ID = 1,ID2 = 2,ID3 = 3)
一旦我刪除ID我想退回這種情況(ID2 = 1,ID3 = 2)等等。
需要我一個腳本來做到這一點?
你可以爲整個表重置AUTO_INCREMENT
:
ALTER TABLE table AUTO_INCREMENT=1;
但你真的不能回去,以填補在已經刪除的各行的值。 auto_increment
值旨在是唯一的,但如果發生刪除或插入的新行的顯式值設置爲auto_increment
列,則不能保證保持順序。
如果您需要修改它們再次成爲連續的,它必須在代碼中完成,大概遍歷所有行並單獨進行UPDATE
語句。
呃..它不工作導致,如果我有我的表,從6日起也不會更改爲1條第一個記錄,然後依次其他記錄:( – memento
@紀念見我的答案的其餘部分。'auto_increment'不能有效地用於保證順序編號。這不是它的目的。 –
你是否明白它會打破其他表中的外鍵,鏈接到你的網站等? – RiaD
我知道,但它僅僅是一個幻燈片庫表;) – memento