У меня есть таблица MySQL, подобная этой:
CREATE TABLE categories
(
ID INT NOT NULL,
Name VARCHAR(100) NULL,
Parent INT NULL,
PRIMARY KEY (ID)
)Engine=InnoDB
Что я хотел бы сделать, так это обеспечить удаление всех дочерних элементов при каждом удалении их родителей. Сначала я хотел сделать это, добавив в таблицу внешний ключ:
ALTER TABLE categories ADD CONSTRAINT FOREIGN KEY Parent(Parent)
REFERENCES categories(ID) ON DELETE CASCADE
Это не работает. Я также пробовал внутренние отношения, но безуспешно.
Родители и их дети связаны с помощью рекурсивной функции PHP. Есть ли способ в MySQL для достижения цели, или это должно быть сделано с помощью PHP?