2016-07-17 133 views
0

是否有任何mysql查詢,更新表和從1開始設置數字? 例如,表格「item」有100000行,查詢只會更新第一行並設置id =「1」,在2,3,4等旁邊。自動計算MySQL查詢

+0

要更新其'column'?更好地發佈表結構代碼。 – 1000111

回答

0

添加自動增量列(INT)應該做你想要什麼

+0

但他不會更新現有的行。 –

+0

你可以刪除已存在的行並重新命名爲舊的名稱。 然後如果你喜歡你可以在開始時移動它,添加索引等 – AucT

1

嘗試:

ALTER TABLE item MODIFY id INT PRIMARY KEY NOT NULL AUTO_INCREMENT 

如果你在你的項目表編號。 但它會顯示ID列有重複值的錯誤。

0

表中是否已有主鍵?如果不是,則用AUTO_INCREMENT創建一個。

這將完成工作。

ALTER TABLE `your_table` 
ADD COLUMN `id_primary` int NOT NULL AUTO_INCREMENT FIRST , 
ADD PRIMARY KEY (`id_primary`); 

注:如果該列包含重複值的現有列更改爲primary key AUTO_INCREMENT會引發錯誤。

0

鑑於這種

MariaDB [sandbox]> select * from posts; 
+------+--------+----------+ 
| id | userid | category | 
+------+--------+----------+ 
| NULL |  1 | a  | 
| NULL |  1 | b  | 
| NULL |  1 | c  | 
| NULL |  2 | a  | 
| NULL |  1 | a  | 
+------+--------+----------+ 
5 rows in set (0.00 sec) 

此代碼

use sandbox; 
update posts p,(select @rn:=0) rn 
set   id=(@rn:[email protected]+1) 
where 1 = 1; 

結果

MariaDB [sandbox]> select * from posts; 
+------+--------+----------+ 
| id | userid | category | 
+------+--------+----------+ 
| 1 |  1 | a  | 
| 2 |  1 | b  | 
| 3 |  1 | c  | 
| 4 |  2 | a  | 
| 5 |  1 | a  | 
+------+--------+----------+ 
5 rows in set (0.00 sec)