«Пожалуйста, выберите равное количество источников и справки» на SQLYOG

StackOverflow https://stackoverflow.com/questions/2571070

Вопрос

Я пытаюсь добавить ограничение внешнего ключа через 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 ; 

Удачи!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top