Se você não tem permissão para modificar as tabelas, você pode dar uma olhada no
EXISTS
operador.Permitirá que você exclua linhas de uma tabela somente se a consulta dentro do
EXISTS
retornar pelo menos 1 resultado. Você pode usá-lo para verificar dependências. Você pode escrever 3 consultas:
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 ...
O primeiro cuidará do registro em
C
que referencia registros em B
que referencia registros em A
que você deseja excluir.Então você pode remover registros de
B
já que não há mais dependências em C
.Finalmente, você pode excluir registros de
A
usando a mesma lógica.