我们如何在现有MySQL表的多个列上设置PRIMARY KEY?
我们可以通过使用ADD关键字和ALTERTABLE语句在现有表的多个列上设置PRIMARYKEY约束。
示例
假设我们有一个表“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”上添加复合PRIMARYKEY
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)
从上面的结果集中可以看出,PRIMARYKEY已添加到多列中。