可能重複:
Fragmentation of id's (auto_increment column) in mysql如果發生故障,我可以修復身份證號碼嗎?
我有一個新聞門戶網站,每條新聞都有它的ID現在計數515篇在MySQL
但是前幾天我做了某種一個混亂,所以當添加新聞的ID顯示 2339,我總是不得不手動編輯到516.
有沒有辦法解決這個問題,所以下一篇文章將使用id 517而不是2340?
可能重複:
Fragmentation of id's (auto_increment column) in mysql如果發生故障,我可以修復身份證號碼嗎?
我有一個新聞門戶網站,每條新聞都有它的ID現在計數515篇在MySQL
但是前幾天我做了某種一個混亂,所以當添加新聞的ID顯示 2339,我總是不得不手動編輯到516.
有沒有辦法解決這個問題,所以下一篇文章將使用id 517而不是2340?
我想你只是想改變你的自動遞增ID的當前索引?
如果你有PhpMyAdmin,你可以點擊你的表格,然後進入「操作」選項卡。你會看到一個名爲「AUTO_INCREMENT」的字段。你會想它更改爲517,而不是2340
或者,使用SQL:
ALTER TABLE articles SET AUTO_INCREMENT = 517
編輯:我看到很多評論說,它不會在所有問題。這是真的,它不會影響任何東西,也可能永遠不應該做。不過,如果您仍決定繼續推進,我至少提供了一個解決方案。
感謝名單了很多。這樣做的訣竅 - 現在它回到原來的計數 - Thanx – 2012-02-12 14:00:32
A primary key
應該僅用於映射關係和唯一標識行。除非您已將ID字段設置爲foreign key
,否則重新排序可能會破壞您的大部分數據庫功能。
總之是你問什麼是可能的,但從來沒有在數據庫設計是個好主意。不要讓虛榮心妨礙建立一個好的數據庫。
現在,如果出於某種瘋狂的原因,你仍然想這樣做,你最好的選擇是使用PHP腳本來選擇*
並從表中按ID排序。然後讓它遍歷並更新每行的ID列到任何你想要的(例如從0開始並增量)。您最可能遇到的問題是primary key
是唯一的,您的ID不是完美的增量順序,因此您可能必須先將ID設置爲常規列,然後將其切換回primary key
或。操作。
您可以用'ALTER TABLE'語句重置auto_increment值,但是您真的需要嗎? – 2012-02-02 16:19:27
使用PK作爲素材序列計數器是錯誤的。 PKS其另一個目的 – triclosan 2012-02-02 16:20:21
一些變種http://stackoverflow.com/questions/6629402/re-indexing-mysql-int-primary-keys-reset-auto-increment/6629447#6629447 – triclosan 2012-02-02 16:21:44