首页 > 文章列表 > 我们如何删除应用于现有 MySQL 表的多个列的复合 PRIMARY KEY 约束?

我们如何删除应用于现有 MySQL 表的多个列的复合 PRIMARY KEY 约束?

341 2023-09-01

我们可以通过使用 DROP 关键字和 ALTER TABLE 语句从现有表的多个列中删除复合 PRIMARY KEY 约束。

示例

假设我们有一个表“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)

现在,如果我们想删除复合 PRIMARY KEY 约束,那么我们可以使用 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”的复合 PRIMARY KEY 约束已被删除。