MySQL cho phép khóa chính gồm nhiều cột (composite primary key). Cặp giá trị của các cột này phải duy nhất cùng nhau.
Cú pháp
PRIMARY KEY (cot1, cot2)
Ví dụ minh họa
Tạo bảng với khóa chính là (FirstName, LastName):
mysql> CREATE TABLE DemoTable (
StudentFirstName VARCHAR(100),
StudentLastName VARCHAR(100),
StudentAge INT,
StudentCountryName VARCHAR(100),
PRIMARY KEY(StudentFirstName, StudentLastName)
);
Kiểm tra cấu trúc:
mysql> DESC DemoTable;
Kết quả
+--------------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +--------------------+--------------+------+-----+---------+-------+ | StudentFirstName | varchar(100) | NO | PRI | NULL | | | StudentLastName | varchar(100) | NO | PRI | NULL | | | StudentAge | int(11) | YES | | NULL | | | StudentCountryName | varchar(100) | YES | | NULL | | +--------------------+--------------+------+-----+---------+-------+
Cả hai cột đều có Key = PRI và Null = NO.
Lưu ý:
- Không được phép có NULL trong bất kỳ cột nào của khóa chính.
- Cặp (FirstName, LastName) phải duy nhất; trùng lặp sẽ báo lỗi
Duplicate entry. - Thứ tự cột trong PK ảnh hưởng đến thứ tự index và hiệu năng truy vấn.