ON DELETE CASCASDE
を使用して、子行からその親への外部キーを設定していることを確認する必要があります。 外部キーに設定されたオプション。これは、個別のテーブルの参照と同様に、自己参照テーブルでも機能します。ツリーを削除するには、親ノードを削除するだけです。すべての子行がまとめて削除されます。
例えば与えられた:
CREATE TABLE MyTable
(
ID INT NOT NULL PRIMARY KEY,
ParentID INT NULL,
CONSTRAINT FK_MT_Parent FOREIGN KEY (ParentID) REFERENCES MyTable(ID) ON DELETE CASCADE
);
-- And inserting two trees of data:
-- 1-2-3
-- └-4
-- 10 - 11
INSERT INTO MyTable(ID,ParentID) VALUES
(1,null), (2,1), (3,2), (4,2),
(10,null), (11,10);
ルートノードを削除するだけで、最初のツリー全体を削除できます:
DELETE FROM MYTable WHERE ID = 1;
ただし、ドキュメント> CASCADE
の深さに制限があること 削除: