Я использую MySQL 5.6, и я прочитал справочное руководство MySql относительно этого, но нигде не упоминается, что PK должен находиться в конце списка при создании составного внешнего ключа.
Единственное требование в руководстве, в котором говорится о столбцах, заключается в следующем: «В ссылочной таблице должен быть индекс, в котором столбцы внешнего ключа перечислены как первые столбцы в том же порядке».
Если так, то почему не работает следующее?
alter table table_1
add constraint "fk_key_1" FOREIGN KEY "ix_key_1" ("col_1", "col_2") REFERENCES "table_2" ("pk_col", "col_2") ON DELETE NO ACTION;
Но это работает -
alter table table_1
add constraint "fk_key_1" FOREIGN KEY "ix_key_1" ("col_1", "col_2") REFERENCES "table_2" ("col_2", "pk_col") ON DELETE NO ACTION;