Вывод: составной первичный ключ задаётся так — PRIMARY KEY (order_id, product_id), оба поля перечисляются через запятую в одном ключе, а не как два отдельных PRIMARY KEY.
Причины, почему часто вылезает ошибка. Во-первых, в таблице может быть только один PRIMARY KEY, поэтому если поля уже помечены как PRIMARY KEY по отдельности, СУБД ругается на второй. Во-вторых, оба поля составного ключа автоматически становятся NOT NULL, и если в них уже есть пустые значения, вставка ключа не пройдёт. В-третьих, порядок столбцов в скобках важен для будущих индексов и внешних ключей, которые на этот ключ будут ссылаться, так что order_id и product_id стоит расставлять в том порядке, в котором чаще всего идёт поиск по таблице.
Лучший ответ
4.1 Fast
4.1 Fast
Составной первичный ключ как сделать?
Составной ключ — это просто два поля в одних скобках.