Si vous n'êtes pas autorisé à modifier les tables, vous pouvez jeter un œil au EXISTS opérateur.
Il vous permettra de supprimer des lignes d'une table uniquement si la requête à l'intérieur du EXISTS renvoie au moins 1 résultat. Vous pouvez l'utiliser pour vérifier les dépendances.
Vous pouvez écrire 3 requêtes :
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 ...
Le premier s'occupera de l'enregistrement en C qui référence les enregistrements dans B qui référence les enregistrements dans A que vous souhaitez supprimer.
Ensuite, vous pouvez supprimer des enregistrements de B puisqu'il n'y a plus de dépendances en C .
Enfin, vous pouvez supprimer des enregistrements de A en utilisant la même logique.