Nazywa się to kluczem złożonym.
Jeśli chcesz zmienić swój aktualny PK na złożony, użyj
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>);
Możesz także po prostu dodać unikalne ograniczenie (Twoje PK będzie takie samo, a unikalne pary... będą musiały być unikalne).
alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);
Osobiście poleciłbym drugie rozwiązanie (proste PK + unikalne ograniczenie), ale to tylko osobisty punkt widzenia. Możesz wyszukiwać w Google argumenty za i przeciw dotyczące kluczy złożonych.
Część pomiędzy []
są opcjonalne.
EDYTUJ
Jeśli chcesz to zrobić w instrukcji tworzenia tabeli
Dla złożonego pk
CREATE TABLE Test(
id1 int NOT NULL,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1, id2)
);
Dla unikalnego indeksu
CREATE TABLE Test1(
id1 int NOT NULL AUTO_INCREMENT,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1),
UNIQUE KEY (id2, id3)
);