«Пожалуйста, выберите равное количество источников и справки» на SQLYOG
-
24-09-2019 - |
Вопрос
Я пытаюсь добавить ограничение внешнего ключа через SQLYOG и получать эту ошибку, хотя я выбираю только один источник и одну ссылочные столбцы
Пожалуйста, выберите равное количество источника и ссылки
Кто-нибудь знает, что это значит в этом случае? Обратите внимание, что у меня есть равное количество исходных и справочных колонн ...
Решение
Я наткнулся на тот же вопрос с sqlyog v9.01. Сообщение об ошибке вводит в заблуждение, и реальная причина ошибки может быть совершенно другой.
Вещи, которые я проверил, чтобы решить, что следующие:
- Проверьте таблицу Engyne Types, должны быть как InnoDB
- Проверьте, если ваша целевая таблица не такая же, как источник.
- Проверьте хранилища данных, длину и расчеты сопоставления ссылочных полей.
- Если у вас уже есть данные в ваших таблицах, проверьте его согласованность.
Например, вы должны удалить все несвязанные данные из таблицы B, которая относится к таблице A
DELETE target FROM B AS target LEFT JOIN A USING(id_A) WHERE A.id_A IS NULL
- Наконец, в моем случае мне пришлось промывать столы, чтобы успешно создавать свои ограничения.
Ручное создание ограничения от окна запроса может дать вам дополнительную информацию о вашем типе ошибки.
Просто напоминание:
ALTER TABLE `B` ADD CONSTRAINT `FK_B` FOREIGN KEY (`id_A`) REFERENCES `A` (`id_A`) ON DELETE CASCADE ;
Удачи!