Nó được gọi là khóa tổng hợp.
Nếu bạn muốn thay đổi PK thực tế của mình thành PK tổng hợp, hãy sử dụng
Alter table <your table> drop PRIMARY KEY;
Alter table <your table> drop COLUMN <your autoincremented column>;
Alter table <your table> add [constraint <constraint name>] PRIMARY KEY (<col1>, <col2>);
Bạn cũng có thể chỉ cần thêm một ràng buộc duy nhất (PK của bạn sẽ giống nhau và các cặp duy nhất ... sẽ phải là duy nhất).
alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);
Về mặt cá nhân, tôi muốn giới thiệu giải pháp thứ hai (PK đơn giản + ràng buộc duy nhất), nhưng đó chỉ là quan điểm cá nhân. Bạn có thể google để biết các đối số ưu và nhược điểm về khóa tổng hợp.
Phần giữa []
là tùy chọn.
CHỈNH SỬA
Nếu bạn muốn làm điều này trong câu lệnh tạo bảng
Đối với pk tổng hợp
CREATE TABLE Test(
id1 int NOT NULL,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1, id2)
);
Đối với một chỉ mục duy nhất
CREATE TABLE Test1(
id1 int NOT NULL AUTO_INCREMENT,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1),
UNIQUE KEY (id2, id3)
);