如何在 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 上添加了複合主鍵。
廣告