MySQL อนุญาตให้กำหนด PRIMARY KEY บนหลายคอลัมน์ (Composite Primary Key) ข้อดีคือสามารถทำงานกับหลายคอลัมน์เป็นหน่วยเดียวได้
ตัวอย่าง
สร้างตาราง allotment โดยกำหนด Composite 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 | |
+--------+-------------+------+-----+---------+-------+
หากพยายามเพิ่มค่าซ้ำในคอลัมน์ทั้งสอง 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'