To się nazywa klucz kompozyt.
Jeśli chcesz zmienić swój rzeczywisty PK do jednego złożonego, należy
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żna też po prostu dodać unique (Twój PK będą takie same, a unikalne pary będą musiały ... być wyjątkowym).
alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);
Personnally, polecam to drugie rozwiązanie (prosty PK + UNIQUE), ale to tylko osobisty punkt widzenia. Możesz google argumentować o argumentach za i przeciw kluczom złożonym.
Część między []
jest opcjonalna.
EDIT
Jeśli chcesz to zrobić w rachunku 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)
);
na niepowtarzalny indeks
CREATE TABLE Test1(
id1 int NOT NULL AUTO_INCREMENT,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1),
UNIQUE KEY (id2, id3)
);
Jaka jest Twoja intencja tutaj? Aby zachować kombinacje unikatowe lub trzeba użyć obu do zidentyfikowania wiersza? –