Почему позиция Первичного ключа актуальна при создании составного внешнего ключа в MySql5.6? - PullRequest
0 голосов
/ 02 октября 2018

Я использую 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;

1 Ответ

0 голосов
/ 02 октября 2018

Внешний ключ должен соответствовать первичному ключу (или некоторому ключу, но предпочтительно первичному) - как типам, так и порядку.

Если это работает:

FOREIGN KEY "ix_key_1"  ("col_1", "col_2") REFERENCES "table_2 ("col_2", "id_col") ON DELETE NO ACTION;

Это потому, что первичный ключ на table_2 определен как (col_2, id_col), а не (id_col, col_2).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...