Om du inte har tillåtelse att ändra tabellerna kan du ta en titt på EXISTS operator.
Den tillåter dig att ta bort rader från en tabell endast om frågan i EXISTS returnera minst 1 resultat. Du kan använda den för att kontrollera beroenden.
Du kan skriva tre frågor:
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 ...
Den första tar hand om registreringen i C som refererar till poster i B som refererar till poster i A som du vill ta bort.
Då kan du ta bort poster från B eftersom det inte finns fler beroenden i C .
Äntligen kan du ta bort poster från A med samma logik.