更改 table 添加无法识别的主键 MySQL
Alter table add primary key not recognised MySQL
我正在尝试运行声明ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);
这会在 运行 时产生语法错误(错误代码 1064)。 MySQL Workbench 突出显示 ADD PRIMARY KEY 后的括号,并显示消息“(”在此位置对于此服务器版本无效。
有什么办法可以解决这个问题吗?我在 MySQL 社区服务器 8.0.19
例如,如果我们有一个 table:
create table invoice_partitioned (id int
, department_code INT
, primary key(ID));
那么就是这样:
ALTER TABLE invoice_partitioned DROP PRIMARY KEY;
ALTER TABLE invoice_partitioned ADD PRIMARY KEY(id, department_code);
这也适用:
ALTER TABLE invoice_partitioned
DROP PRIMARY KEY,
ADD PRIMARY KEY(id, department_code);
你可以在一条语句中完成
只是不要在列名称前添加 table 名称,如下所示
替换
ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);
至此
ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY (id, department_code);
我正在尝试运行声明ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);
这会在 运行 时产生语法错误(错误代码 1064)。 MySQL Workbench 突出显示 ADD PRIMARY KEY 后的括号,并显示消息“(”在此位置对于此服务器版本无效。
有什么办法可以解决这个问题吗?我在 MySQL 社区服务器 8.0.19
例如,如果我们有一个 table:
create table invoice_partitioned (id int
, department_code INT
, primary key(ID));
那么就是这样:
ALTER TABLE invoice_partitioned DROP PRIMARY KEY;
ALTER TABLE invoice_partitioned ADD PRIMARY KEY(id, department_code);
这也适用:
ALTER TABLE invoice_partitioned
DROP PRIMARY KEY,
ADD PRIMARY KEY(id, department_code);
你可以在一条语句中完成
只是不要在列名称前添加 table 名称,如下所示
替换
ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY(invoice_partitioned.id, invoice_partitioned.department_code);
至此
ALTER TABLE invoice_partitioned DROP PRIMARY KEY, ADD PRIMARY KEY (id, department_code);