Se non sei autorizzato a modificare le tabelle, puoi dare un'occhiata a EXISTS
operatore.
Ti permetterà di eliminare righe da una tabella solo se la query all'interno di EXISTS
restituire almeno 1 risultato. Puoi usarlo per controllare le dipendenze.
Puoi scrivere 3 domande:
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 ...
Il primo si occuperà della registrazione in C
che fa riferimento a record in B
che fa riferimento a record in A
che desideri eliminare.
Poi puoi rimuovere i record da B
poiché non ci sono più dipendenze in C
.
Infine, puoi eliminare i record da A
utilizzando la stessa logica.