Shuriken
17.07.2013 - 09:37
Доброго времени суток!
Пытаюсь связать две таблицы, получается ошибка
#1452 - Cannot add or update a child row: a foreign key constraint fails (`tvfood7y_db`.<result 2 when explaining filename '#sql-99c9e_57d2ca'>, CONSTRAINT `#sql-99c9e_57d2ca_ibfk_1` FOREIGN KEY (`match_id`) REFERENCES `ftb_match` (`id`) ON DELETE CASCADE)
Я привязываю поле `match_id` таблицы `ftb_result` с полем `id` таблицы `ftb_match`, чтобы установить каскадное удаление.
Версия Mysql 5.1.66, таблицы типа InnoDB. В таблицах уже есть данные, данные вносились, когда тип таблиц был MyISAM
Winston
17.07.2013 - 10:12
Чтобы не было таких проблем нужно соблюдать некоторые правила
1 - Тип обеих таблиц InnoDB
2 - Тип и размер полей ftb_result.match_id и ftb_match.id тоже должен быть одинаков
3 - В поле ftb_result.match_id НЕ должно быть таких ID'шников которые отсутствуют в ftb_match.id
Цитата (Shuriken @ 17.07.2013 - 08:37) |
Версия Mysql 5.1.66, таблицы типа InnoDB. В таблицах уже есть данные, данные вносились, когда тип таблиц был MyISAM
|
Видимо не соблюдено 3 правило, то есть в поле ftb_result.match_id видимо присутствуют ID отсутствующие в поле на которое ссылаемся.
Shuriken
17.07.2013 - 10:42
Спасибо! Действительно не было соблюдено третье условие.
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.