我们如何在现有MySQL表的多个列上设置PRIMARY KEY?

我们可以通过使用ADD关键字和ALTER TABLE语句在现有表的多个列上设置PRIMARY KEY约束。

示例

假设我们有一个表“ Room_allotment”,如下所示:

mysql> Create table Room_allotment(Id Int, Name Varchar(20), RoomNo Int);

mysql> Describe Room_allotment;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| Id     | int(11)     | YES  |     | NULL    |       |
| Name   | varchar(20) | YES  |     | NULL    |       |
| RoomNo | int(11)     | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
3 rows in set (0.11 sec)

现在,我们可以使用以下查询在多个列“ id”和“ Name”上添加复合PRIMARY KEY

mysql> Alter Table Room_allotment ADD PRIMARY KEY(Id, Name);
Records: 0  Duplicates: 0  Warnings: 0

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.12 sec)

从上面的结果集中可以看出,PRIMARY KEY已添加到多列中。