2014-12-07 84 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;