2015-07-11 44 views
1

我在我的數據庫中有一個表,我想重新編制索引。在mysql中重新索引表

由於一些行,其中刪除了,我現在有:

id  name  phone 
1  xxxx  xxxxx 
4  xxxx  xxxxx 
6  xxxx  xxxxx 

而且我想:

id  name  phone 
1  xxxx  xxxxx 
2  xxxx  xxxxx 
3  xxxx  xxxxx 

id已經自動遞增。 行的id的變化不會對網站的其他部分產生任何影響,它只是一個簡單的客戶列表。

我搜索互聯網上,發現了一些事情REPAIR TABLE,但我不知道它適用於我的情況:/

感謝您的幫助!

+0

你正在使用什麼數據庫?你想重新編制什麼專欄?問題是什麼? –

+0

問題是我有一些不存在的id,因爲該行被刪除。我寧願有1,2,3,4,5而不是1,2,6,9,10。我想重置索引並重新創建它們。 –

+0

[刪除自動增量中的間隔]可能出現重複(http://stackoverflow.com/q/9754244/1427878)。你應該特別注意[這個答案](http://stackoverflow.com/a/28507586/1427878),特別是它在第一段中鏈接到的外部頁面。 – CBroe

回答

0

您可以嘗試下探的ID字段,然後像這樣重新創建它:

alter table `my_table` modify column id INT NOT NULL; 
alter table `my_table` drop primary key, add primary key(id); 
alter table `my_table` modify column id INT NOT NULL AUTO_INCREMENT; 

我建議在開發數據庫嘗試這第一個理想,或以其他方式至少重複你的表,並在嘗試那首先。你不想冒「生產」數據的風險。

+0

似乎沒有工作:( –

+0

你將不得不比任何人都更具體,以幫助你 –

+0

這**不起作用,因爲**舊號碼永遠不會丟失,也不會取代。你需要將列丟失,但丟失了命令,所以它更加複雜 - 刪除AI,添加一個新的AI列等等。 –