次のような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 を使用して行う必要がありますか?