Pokud nemáte povolení upravovat tabulky, můžete se podívat na EXISTS operátor.
Umožní vám odstranit řádky z tabulky pouze v případě, že dotaz uvnitř EXISTS vrátit alespoň 1 výsledek. Můžete jej použít ke kontrole závislostí.
Můžete napsat 3 dotazy:
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 ...
První se postará o záznam v C který odkazuje na záznamy v B který odkazuje na záznamy v A které chcete smazat.
Poté můžete odstranit záznamy z B protože v C už nejsou žádné další závislosti .
Konečně můžete odstranit záznamy z A pomocí stejné logiky.