U hoeft er alleen voor te zorgen dat u een externe sleutel hebt ingesteld van de onderliggende rij naar de bovenliggende rij, met de ON DELETE CASCASDE
optie ingesteld op de externe sleutel. Dit werkt even goed voor een zelfverwijzende tabel als voor verwijzingen in afzonderlijke tabellen. Om de boom te verwijderen, verwijdert u eenvoudig het bovenliggende knooppunt. Alle onderliggende rijen worden in het kort verwijderd.
bijv. Gegeven:
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);
We kunnen de hele eerste boom verwijderen door simpelweg het wortelknooppunt te verwijderen:
DELETE FROM MYTable WHERE ID = 1;
Merk echter op dat uit de Documenten dat er een limiet is aan de diepte van CASCADE
verwijdert: