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.