У меня есть схема MySql, которая использует class table inheritance, но я хочу, чтобы дочерние таблицы имели каскадное удаление из родительской таблицы и внешнюю таблицу.MySql cascade delete from 2 tables
create table parent (
_key bigint unsigned not null,
name varchar(64) unique not null,
primary key(_key)
);
create table child_a (
_key bigint unsigned not null,
foreign_key_a bigint unsigned not null,
foreign key(_key) references parent(_key) on delete cascade,
foreign key(foreign_key_a) references a(_key) on delete cascade,
primary key(_key)
);
create table child_b (
_key bigint unsigned not null,
foreign_key_b bigint unsigned not null,
foreign key(_key) references parent(_key) on delete cascade,
foreign key(foreign_key_b) references b(_key) on delete cascade,
primary key(_key)
);
Вопрос в том, когда запись будет удалена из одной из зарубежных таблиц, он будет удалить запись из таблицы ребенка, но не из родительской таблицы. Я не хотел бы использовать хранимую процедуру/многозадачность в качестве решения, потому что у чужих таблиц есть собственные каскадные удаления, поэтому мне также нужны хранимые процедуры для них.
Оператор ** on delete cascade ** позволяет, когда родитель удален, удалить дочерние элементы, связанные с их внешними ключами. возможно, в вашем случае это не то, что вы должны использовать? –