更改 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);

Here is a demo

这也适用:

ALTER TABLE invoice_partitioned
DROP PRIMARY KEY,
ADD PRIMARY KEY(id, department_code);

Demo

你可以在一条语句中完成

只是不要在列名称前添加 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);