[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Связка таблиц
Shuriken
Доброго времени суток!

Пытаюсь связать две таблицы, получается ошибка

#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
Чтобы не было таких проблем нужно соблюдать некоторые правила
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
Спасибо! Действительно не было соблюдено третье условие.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.