mysql - 更改表添加主键无法识别MySQL

标签 mysql sql primary-key alter

我正在尝试运行语句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

关于mysql - 更改表添加主键无法识别MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60427239/

相关文章:

sql - T-SQL CASE 多个条件相同结果

mysql - 在 LOAD DATA INFILE 之前或之后定义 PK

php - 数据库 |主键需要重置

MYSQL:更新 tblUser SET userName = 'MD5 hash generated version of the userName' WHERE userID IN (...)?

mysql - 如何使用组合索引进行昂贵的聚合查询?

mysql - MySQL 可以在表中创建表吗?

mysql表主键未执行

php - 如何对 mySQL 表中的数据进行分组/汇总?

asp.net-mvc-3 - MVC3/Razor 添加 Controller "Get-PrimaryKey"无法找到主键

mysql - 选择每个组中的最后一条记录以及计数