Наличие ненулевого внешнего ключа - PullRequest
0 голосов
/ 13 февраля 2019

Скажем, у меня есть следующие таблицы:

User (
  ID INT NOT NULL PRIMARY KEY
  , providerID INT
)

ProviderPlan(
  planID INT NOT NULL PRIMARY KEY
  , providerID INT NOT NULL
)

Затем я хочу сделать внешний ключ, сопоставляющий две таблицы:

ALTER TABLE ProviderPlan ADD FOREIGN KEY (providerID) REFERENCES User(providerID) ON DELETE CASCADE;

Когда я пытаюсь это сделать, я получаю следующееошибка:

Error Code: 1215. Cannot add foreign key constraint

Моя лучшая догадка для ошибки: один столбец обнуляется, а другой нет.Если это так, как я могу установить столбец, который может содержать пустые значения, в ссылочной таблице как ненулевой внешний ключ в другой таблице?

1 Ответ

0 голосов
/ 13 февраля 2019

Эта ошибка, которую вы получаете, не имеет ничего общего с тем, что один столбец обнуляем, а другой нет.Вы получаете эту ошибку, потому что столбец providerID не является ключом любого типа в соответствии с вашей структурой таблицы.
Таким образом, вы не можете добавить его в качестве внешнего ключа в другую таблицу.

Исправитьдля этого вам нужно либо сделать его частью ключа, либо переосмыслить, должен ли он на самом деле быть его частью, или если вы должны полностью удалить ограничение внешнего ключа.

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