2014-12-07 69 views
0

這是我目前的表設計:錯誤改變MySQL的列AUTO_INCREMENT

enter image description here

我有幾個列和無鍵設置,所以當我嘗試使用以下命令:

ALTER TABLE users MODIFY COLUMN id INT auto_increment; 

它給我一個錯誤。我希望表中的id列自動遞增,我希望它以1開頭。

+1

你得到了什麼錯誤? – markus 2014-12-07 21:18:24

+1

它給你什麼錯誤? – 2014-12-07 21:18:38

+0

'alter table users change id id int primary KEY AUTO_INCREMENT;' – 2014-12-07 21:19:47

回答

1

我認爲你缺少主鍵定義。試試這個:

ALTER TABLE users MODIFY id INT AUTO_INCREMENT PRIMARY KEY 

此外,我建議你檢查this了。

+1

很好的答案。這應該工作。我認爲還有一點很重要,那就是需要這樣做的原因是因爲如果列不是主鍵,那麼列* CAN NOT *就不會是auto_increment。在OP的情況下,id不是關鍵,所以這就是爲什麼它不能單獨改變爲auto_increment。 – AdamMc331 2014-12-07 22:37:49

+0

另外,有趣的事情要注意(因爲你在評論中提問)我相信錯誤OP得到的是這樣的:'架構創建失敗:不正確的表定義;只能有一個自動列,並且它必須被定義爲一個鍵:' – AdamMc331 2014-12-07 22:41:04

0

您必須指定PRIMARY_KEYAUTO_INCREMENT

ALTER TABLE users MODIFY id INT PRIMARY_KEY AUTO_INCREMENT;