Ответ 1
Он называется составным ключом.
Если вы хотите изменить свой фактический PK на композитный, используйте
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>);
Вы также можете просто добавить уникальное ограничение (ваш ПК будет одинаковым, а уникальные пары... должны быть уникальными).
alter table <your table> add [constraint <constraint name>] unique index(<col1>, <col2>);
В общем, я бы рекомендовал второе решение (простое ограничение PK +), но это только личная точка зрения. Вы можете использовать Google для аргументов "за" и "против" о составных ключах.
Часть между []
является необязательной.
ИЗМЕНИТЬ
Если вы хотите сделать это в инструкции create table
Для композита pk
CREATE TABLE Test(
id1 int NOT NULL,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1, id2)
);
Для уникального индекса
CREATE TABLE Test1(
id1 int NOT NULL AUTO_INCREMENT,
id2 int NOT NULL,
id3 int NOT NULL,
PRIMARY KEY (id1),
UNIQUE KEY (id2, id3)
);