mysql - 从复合主键约束中仅删除一个列约束

标签 mysql composite-primary-key

我有一个具有以下结构的 Mysql 表:

enter image description here

如您所见,字段之间存在复合主键约束:word_idpreposition_id

我想从 word_id 中删除主键约束,而不触及 preposition_id 字段,并且不丢失链接表(外键表)中的数据。我该怎么做?

问候。

最佳答案

没有可用的语法来修改约束并仅删除主键的“一半”。
您必须删除整个主键,然后从头开始重新创建它。

只是:

ALTER TABLE tablename DROP PRIMARY KEY;

然后:

ALTER TABLE tablename ADD PRIMARY KEY ( preposition_id );

您需要先删除引用此表中主键的所有外键。

表中的数据将被保留。

关于mysql - 从复合主键约束中仅删除一个列约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36249750/

相关文章:

java - 具有复合主键的实体类没有 getter 和 setter

asp.net-mvc-4 - 如何使用带有复合主键的 ASP.NET MVC4/EF5 脚手架?

mysql - 使用 sql distinct 从两个不同的数据库表中检索相同的列

SQL 主键 - 有必要吗?

mysql - 如何在 TRUE 或 FALSE 之间随机选择?

mysql - 如何在组内选择具有条件的计数(不同)

postgresql - 当 fk 列是 pk 的子集时,主键索引是否会用作外键的索引?

mysql - 每周表的正确结构和索引

mysql - 使用 Doctrine2 : Error: Expected end of string, 的查询问题得到 '.'

PHP从sql查询得到不完整的结果表