在MySQL中更改PK auto_increment时“表已存在”

时间:2014-03-26 11:17:17

标签: mysql

我对MySQL很新,遇到了一个我觉得很困惑的问题。如果我用MySQL Workbench创建一个表,当我设置PK时,我可以选择它自动增加或不应该。但是,如果我稍后改变主意,一旦创建了表,我就不能再改变自动增量标志了,因为MySQL告诉我"表已经存在"。即使表是空的,也会发生这种情况。

自动生成的SQL如下:

ALTER TABLE tablename 
CHANGE COLUMN `ID` `ID` INT(11) NOT NULL AUTO_INCREMENT ;

并且因上述错误而失败。我试过改变算法和锁定类型,但没有用。

例如,在T-SQL或Oracle中不会发生这种情况,因此我无法看到它在MySQL中失败的原因。有没有办法解决这个问题而不必删除并重新创建表格?

感谢。

2 个答案:

答案 0 :(得分:1)

根据经验,当您开始更改主键时,所有GUI都会有点混乱,我从SQL Server看到的错误消息数...

您不需要删除整个表,但最简单的方法是删除然后重新创建有问题的列。

另外,查看MySQL dev文档,但我认为ALTER或MODIFY列是我要去的两个,如果你没有重命名,我不确定为什么列名有两次。< / p>

答案 1 :(得分:1)

好的,我发现了罪魁祸首,感谢dbForge Studio。同样的事情发生在那里,但这次错误更明确:我无法显然更改自动增量标志,因为它被用作另一个表上的外键。我删除了FK然后我能够设置自动增量。

感谢所有帮助过我的人,感谢您的评论我已经学到了一些新东西。