MySQL 如何在现有的MySQL表中取消应用于多列的复合主键约束?
我们可以使用DROP关键字和ALTER TABLE语句一起从多个列中删除现有表的复合主键约束。
阅读更多:MySQL 教程
示例
假设我们有一个名为“Room_allotment”的表,其在列“ID”和“RoomNo”上具有复合主键约束,如下所示 –
mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | PRI | 0 | |
| Name | varchar(20) | NO | PRI | | |
| RoomNo | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.06 sec)
如果我们现在想要删除复合主键约束,则可以使用ALTER TABLE语句,如下所示 –
mysql> Alter table room_allotment DROP PRIMARY KEY;
Query OK, 0 rows affected (0.19 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> describe room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| id | int(11) | NO | | 0 | |
| Name | varchar(20) | NO | | | |
| RoomNo | int(11) | YES | | NULL | |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.07 sec)
上面的结果集显示,已删除列“ID”和“RoomNo”的复合主键约束。