#mysql #cascade
#mysql #каскад
Вопрос:
Допустим, у меня есть родительская таблица: FAMILY_MEMBER
, каждая из которых имеет unique ID
идентификатор.
У меня также есть FAMILY
таблица с mother_id
, father_id
и daughter_id
, каждая из которых указывает на FAMILY_MEMBER
строку.
Когда я удаляю FAMILY
строку, я бы хотел, чтобы БД автоматически удаляла 3 FAMILY_MEMBER
родительские строки. Похоже, это полная противоположность тому ON DELETE
ON UPDATE
, для чего предназначены предложения and .
Комментарии:
1. Вам может помочь триггер.
Ответ №1:
create trigger t1
after delete on FAMILY
for each row
BEGIN
delete from family_member
where id = old.mother_id;
delete from family_member
where id = old.fa=ther_id;
delete from family_member
where id = old.daughter_id;
END
Или этот (вы можете использовать разделитель для имени триггера и таблицы):
create trigger `t1`
after delete on `FAMILY`
for each row
BEGIN
delete from family_member
where id = old.mother_id;
delete from family_member
where id = old.fa=ther_id;
delete from family_member
where id = old.daughter_id;
END