Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как строить таблицы, чтобы при удалении записи удалялись записи из подчинённых таблиц?

coder Мыслитель (5331), закрыт 4 года назад
Допустим у меня три уровня таблиц:

CREATE TABLE TasksImages (id CHAR(25) PRIMARY KEY, date_created VARCHAR);

CREATE TABLE Tasks (image_id CHAR(25), id CHAR(25) PRIMARY KEY, name VARCHAR, FOREIGN KEY (image_id) REFERENCES TasksImages (id));

CREATE TABLE Triggers (task_id CHAR(25), name VARCHAR, FOREIGN KEY (task_id) REFERENCES Tasks (id));

Мне нужно чтоб я удалял одну запись из TasksImages и автоматом у меня удалялись соответствующие записи из нижних таблиц.
Лучший ответ
Максим Хан-Магомедов Гуру (4530) 4 года назад
При создании ключа нужно дописать on update cascade on delete cascade.
foreign key (field) references Tasks (id) on update cascade on delete cascade.

Может быть сработает просто добавление cascade в delete: delete from tasks where id = 123 cascade;
coderМыслитель (5331) 4 года назад
Верно!
CREATE TABLE Tasks (image_id CHAR(25), id CHAR(25) PRIMARY KEY, name VARCHAR, FOREIGN KEY (image_id) REFERENCES TasksImages (id) ON DELETE CASCADE)
Остальные ответы
Похожие вопросы