Wenn Sie die Tabellen nicht ändern dürfen, können Sie sich die EXISTS
ansehen -Operator.
Sie können Zeilen nur dann aus einer Tabelle löschen, wenn die Abfrage innerhalb des EXISTS
gib mindestens 1 Ergebnis zurück. Sie können es verwenden, um Abhängigkeiten zu überprüfen.
Sie können 3 Abfragen schreiben:
DELETE C c
WHERE EXISTS (SELECT 1
FROM B b
WHERE c.b = b.b
AND EXISTS (SELECT 1
FROM A a
WHERE a.a = b.a
AND ... ));
DELETE B b
WHERE EXISTS (SELECT 1
FROM A a
WHERE a.a = b.a
AND ...);
DELETE A a
WHERE ...
Der erste kümmert sich um die Aufzeichnung in C
die auf Datensätze in B
verweist die auf Datensätze in A
verweist die Sie löschen möchten.
Dann können Sie Datensätze aus B
entfernen da es in C
keine Abhängigkeiten mehr gibt .
Schließlich können Sie Datensätze aus A
löschen mit der gleichen Logik.