Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL alter table add列主键语法错误_Mysql_Sql - Fatal编程技术网

MySQL alter table add列主键语法错误

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'是自动递增的,所有列都是主键的一部分

这是我的疑问:

但是,我收到以下错误消息:


任何帮助/指针都将不胜感激

在设置自动增量之前,您必须先设置“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