Задать вопрос
@SanyokTrim

Почему записи дочерной таблицы остаются при удалении из родительской(MySQL foreign key)?

Есть 2 таблицы Helpdesk
ticket_id (PK) ...
и
HelpdeskAnswers
anwer_id(pk)
ticket_id Foreign key on delete/update Cascade с таблицы Helpdesk

При удалении записи с Helpdesk, в HelpdeskAnswers записи остаються, которые я не могу изменить или удалить. А остаються они до тех пор, пока я не добавлю новую запись в HelpdeskAnswers или не изменю какую-нибудь нормальную запись.

Почему так?
  • Вопрос задан
  • 2483 просмотра
Подписаться 2 Оценить 2 комментария
Пригласить эксперта
Ответы на вопрос 4
svd71
@svd71
Это называется каскадированием и устанвливается при создании вторичного ключа: www.mysqltutorial.org/mysql-on-delete-cascade
Ответ написан
Комментировать
@vdem
Проверьте какой движок у таблиц, MyISAM или InnoDB. Насколько я помню MyISAM не поддерживает контроль целостности по вторичным ключам.
Ответ написан
EndUser
@EndUser
Насколько я понимаю у варианта потери родителей есть несколько вариантов разруливания:
а) запретить убивать родителей;
б) удалять всех детей каскадно со внуками и правнуками?
в) отвязать связь.

Вы какие constraints на foreign key прописали? Или мускул ACID не уважает?
Ответ написан
Комментировать
@SanyokTrim Автор вопроса
охеренные ответы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы