"Пожалуйста, выберите равное количество источника и ссылки" на sqlyog - PullRequest
1 голос
/ 03 апреля 2010

Я пытаюсь добавить ограничение внешнего ключа через sqlyog и получаю эту ошибку, хотя я выбираю только один источник и один столбец ссылок

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

Кто-нибудь знает, что это значит в этом случае? Обратите внимание, что у меня есть одинаковое количество столбцов источника и ссылки ...

1 Ответ

2 голосов
/ 28 декабря 2012

Я сталкивался с той же проблемой с SQLYog v9.01. Сообщение об ошибке вводит в заблуждение, и реальная причина ошибки может быть совершенно другой.

Я решил проверить следующее:

  • Проверьте типы таблиц engyne, должны быть оба InnoDb
  • Проверьте, не совпадает ли ваша целевая таблица с исходной.
  • Проверка типов данных, длины и сопоставления наборов символов для указанных полей.
  • Если у вас уже есть данные в ваших таблицах, проверьте их согласованность.

Например, вы должны удалить все несвязанные данные из таблицы B, которая относится к таблице A

 DELETE target FROM B AS target LEFT JOIN A USING(id_A) WHERE A.id_A IS NULL
  • И наконец, в моем случае мне пришлось очищать таблицы, чтобы успешно создавать свои ограничения.

Создание ограничений вручную из окна Query может дать вам больше информации о вашем типе ошибки.

Просто напоминание:

ALTER TABLE `B` ADD CONSTRAINT `FK_B` FOREIGN KEY (`id_A`) REFERENCES `A` (`id_A`) ON DELETE CASCADE ; 

Удачи!

...