我們如何設定 MySQL 表中的多個列上的 PRIMARY KEY?


事實上,MySQL 允許我們針對多個列設定 PRIMARY KEY。這樣做的優勢在於,我們可以將多個列作為單個實體進行處理。

示例

我們透過在多個列上定義複合 PRIMARY KEY 來建立分配表,如下所示 −

mysql> Create table allotment(
   RollNo Int, Name Varchar(20), RoomNo Int, PRIMARY KEY(RollNo, RoomNo));
Query OK, 0 rows affected (0.23 sec)

mysql> Describe allotment;

+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| RollNo | int(11)     | NO   | PRI | 0       |       |
| Name   | varchar(20) | YES  |     | NULL    |       |
| RoomNo | int(11)     | NO   | PRI | 0       |       |
+--------+-------------+------+-----+---------+-------+

3 rows in set (0.10 sec)

現在,當我們嘗試在兩個列中插入重複的複合值時,MySQL 會出現如下錯誤 −

mysql> Insert Into allotment values(1, 'Aarav', 201),(2,'Harshit',201),(1,'Rahul ',201);
ERROR 1062 (23000): Duplicate entry '1-201' for key 'PRIMARY'

更新於:2019 年 7 月 30 日

830 次瀏覽

開啟你的 職業生涯

完成課程並獲取認證

開始
廣告