MySQL alter table add列主键语法错误
我试图向我的一个数据库表中添加一列,但出现语法错误 我似乎找不到问题所在 我当前的数据库表如下所示: 我希望它看起来像这样,其中'id'是自动递增的,所有列都是主键的一部分 这是我的疑问: 但是,我收到以下错误消息:MySQL alter table add列主键语法错误,mysql,sql,Mysql,Sql,我试图向我的一个数据库表中添加一列,但出现语法错误 我似乎找不到问题所在 我当前的数据库表如下所示: 我希望它看起来像这样,其中'id'是自动递增的,所有列都是主键的一部分 这是我的疑问: 但是,我收到以下错误消息: 任何帮助/指针都将不胜感激在设置自动增量之前,您必须先设置“id”列主键。必须先设置“ALTER TABLE”位,然后每个部分必须用逗号分隔: ALTER TABLE gitags_items DROP PRIMARY KEY, ADD COLUMN id INT NOT
任何帮助/指针都将不胜感激在设置自动增量之前,您必须先设置“id”列主键。必须先设置“ALTER TABLE”位,然后每个部分必须用逗号分隔:
ALTER TABLE gitags_items
DROP PRIMARY KEY,
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id,component,tag_id,item_id);
但是我不确定您是否可以在同一个位置删除并创建主键。这一个工作正常,逗号有问题,没有必要删除主键,因为您要自己设置主键
ALTER TABLE gitags_items ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id,component,tag_id,item_id);
尝试将以下代码添加到my.cnf
sql-mode="NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO"
然后,重新启动MySQL
# service mysqld restart
这在v3前后是一个问题-在当前版本中,MyISAM表只有一个约束,其中autoincrement值必须是索引中的第一个条目。“对于MyISAM表,您可以在多列键中指定自动增量辅助列”-来自
ALTER TABLE gitags_items
DROP PRIMARY KEY,
ADD COLUMN id INT NOT NULL AUTO_INCREMENT FIRST,
ADD PRIMARY KEY (id,component,tag_id,item_id);
ALTER TABLE gitags_items ADD id INT NOT NULL AUTO_INCREMENT FIRST, ADD PRIMARY KEY(id,component,tag_id,item_id);
sql-mode="NO_ENGINE_SUBSTITUTION,ERROR_FOR_DIVISION_BY_ZERO"
# service mysqld restart