如何在 MySQL 中使用 ALTER 表添加复合主键?
要添加复合主键,请使用 ALTER 命令。我们首先创建一个演示表
创建一个表的查询。
mysql> create table CompositePrimaryKey -> ( -> Id int, -> StudentName varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.56 sec)
到目前为止,尚未添加复合主键。让我们借助 desc 命令进行检查。
mysql> desc CompositePrimaryKey;
以下是输出。
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | | NULL | | | StudentName | varchar(100) | YES | | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 3 rows in set (0.09 sec)
查看上面的示例输出,此处没有 primary 关键字。这本身说明不存在复合主键。
现在,让我们使用 ALTER 命令添加复合主键。查询如下。
mysql> ALTER table CompositePrimaryKey add primary key(Id,StudentName); Query OK, 0 rows affected (1.26 sec) Records: 0 Duplicates: 0 Warnings: 0
上面,我已使用列名“Id”和“StudentName”添加了复合主键。为了检查相同的内容,我们可以使用 DESC 命令。查询如下。
mysql> DESC CompositePrimaryKey;
以下是输出。
+-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | Id | int(11) | NO | PRI | NULL | | | StudentName | varchar(100) | NO | PRI | NULL | | | Age | int(11) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
正如我们在以上输出中看到的, “PR”表示我们已成功在列 Id 和 StudentName 上添加了复合主键。
广告