Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách thiết lập PRIMARY KEY cho nhiều cột trong bảng MySQL

MySQL cho phép đặt PRIMARY KEY trên nhiều cột (composite primary key). Lợi ích: có thể thao tác trên nhóm cột như một thực thể duy nhất.

Ví dụ

Tạo bảng allotment với khóa chính tổ hợp trên RollNo và RoomNo:

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       |       |
+--------+-------------+------+-----+---------+-------+

Thử chèn bản ghi trùng khóa tổ hợp:

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

Lỗi xảy ra vì cặp (RollNo, RoomNo) = (1, 201) đã tồn tại.