Trên thực tế, MySQL cho phép chúng ta đặt KHÓA CHÍNH trên nhiều cột. Ưu điểm của việc này là chúng tôi có thể làm việc trên nhiều cột như một thực thể duy nhất.
Ví dụ
Chúng tôi đã tạo phân bổ bảng bằng cách xác định KHÓA CHÍNH tổng hợp trên nhiều cột như sau -
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)
Bây giờ, khi chúng ta cố gắng chèn các giá trị tổng hợp trùng lặp trong cả hai cột thì MySQL sẽ gặp lỗi như sau -
mysql> Insert Into allotment values(1, 'Aarav', 201),(2,'Harshit',201),(1,'Rahul ',201); ERROR 1062 (23000): Duplicate entry '1-201' for key 'PRIMARY'