Mysql &引用#1064-您的SQL语法有错误;当我改变桌子时

Mysql &引用#1064-您的SQL语法有错误;当我改变桌子时,mysql,Mysql,当我尝试更改表格时,我遇到以下错误: #1064-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“主键(id)”附近使用的正确语法 我的问题是: ALTER TABLE gk ADD COLUMN id MEDIUMINT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id); 如何解决这个问题?在altertable语句中,单个ADD规范不能同时添加列和约束;您需要将它们放在单独的规范中: ALTER TABLE gk ADD COL

当我尝试更改表格时,我遇到以下错误:

#1064
-您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“主键(id)”附近使用的正确语法

我的问题是:

ALTER TABLE gk
ADD COLUMN id MEDIUMINT NOT NULL AUTO_INCREMENT,  PRIMARY KEY (id);

如何解决这个问题?

altertable
语句中,单个
ADD
规范不能同时添加列和约束;您需要将它们放在单独的规范中:

ALTER TABLE gk ADD COLUMN id MEDIUMINT NOT NULL AUTO_INCREMENT,
               ADD PRIMARY KEY (id);

(请参阅。)

您是在我的sql workbench中运行此查询还是在java中运行此查询?请尝试在我的表-1中添加新列:阅读文档的基本失败。懒惰。
当您使用CHANGE或MODIFY时,列定义必须包括数据类型和应应用于新列的所有属性,而不是索引属性,如主键或UNIQUE
-@LightnessRacesinOrbit:我认为您误解了这一点。首先,它是关于
更改
修改
,而不是
添加
。第二——这意味着索引属性是可选的(不是隐式删除的),而不是索引属性是禁止的(也不是可添加的)。@ruakh:哦,是的,它是
添加的
;错过了。另一件事我不确定——我用不同的方式解析它。但只有测试才能消除歧义,我(cba:)也相信你的话。
ALTER TABLE gk  ADD id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY