mak_ufo
@mak_ufo

Как правильно настроить каскадное удаление?

Здравствуйте. Есть три таблицы:
cdd4a6967223490298f660290d2b47b0.png
Таблица links главная
Мне приходит id. Надо удалить все записи из links, где поле telegramID = id и все связанные с ним данные из таблицы plants. Пробовал через каскадное удаление так:
alter table links add constraint auto_del
foreign key (id)
references plants(id) on delete cascade;


Но при удалении данных из links в таблице plants всё остается без изменений. Как быть?
  • Вопрос задан
  • 377 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега MySQL
Web developer
alter table links add constraint auto_del
foreign key (id)
references plants(id) on delete cascade;

Это говорит, что при удалении из plants должны удалить и из links, а не наоборот!

При удалении из links автоматически удалить из plants нельзя. И нелогично так поступать. Ибо вполне можно удалить одно из значений много-ко-многим, оставив все остальные.

Если у вас связи много-к-одному, то структура неправильная. И вообще это какой-то говнокод. По названию совершенно непонятно, что это за сущность.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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