2016-03-15 42 views
1

是否有一個MYSQL語句重新從索引1重新索引表的每一行?我不認爲有,但我只是爲了以防萬一。因此,像:MYSQL語句重新索引表索引1再次

REINDEX tableName; 

index: 2 
index: 5 
index: 7 

^---上面會變成這樣的:

index: 1 
index: 2 
index: 3 

回答

1

沒有一個特定的功能來做到這一點,你可以刪除索引列和重新創造它。這些值將被重新分配。

查詢是這樣的:

ALTER TABLE tableName DROP `index`; 
ALTER TABLE tableName AUTO_INCREMENT = 1; 
ALTER TABLE tableName ADD `index` int UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST; 

但是,如果你想新行從1開始,你可以使用:

ALTER TABLE tableName AUTO_INCREMENT = 1 
+0

確實。但是這不會影響已經在表格中的行。 – frosty

+0

@frosty更新後,不要以爲有功能可以做到這一點 – Panda

+0

Purrr-fect。謝謝! – frosty

-2

是否有MYSQL語句來重新每行索引

否。

因爲索引不是您認爲的那樣。

索引不是一個愚蠢的號碼,而是一個唯一標識符不可分割地綁定到記錄。你不應該「重新索引」任何東西,因爲它會使索引實質上無用。