kaskandierendes Löschen nachträglich möglich?

Servus,

Ich habe ein fertiges DB-Schema, das kein löschen von DS erlaubt, solange noch andere DS darauf verweisen (Restrict).

Für den Auslieferungszustand möchte ich aber all unsere Test-DS löschen.
Bei 200 Tabellen ist dies aber viel aufwand…
Alles leer machen, kann ich aber auch nicht, da einige “Systemtabellen” gefüllt bleiben müssen. z.B. PLZ, BLZ, eigene Überwachungstabellen…

Ist es möglich nun ein kaskandierendes löschen abzusetzen?

sowas wie “Delete from t_artikel cascade” ?

du künntest auch für das löschen einfach die pkey und fkey ausschalten, sprich die Constraints deaktivieren.

der trick soll aber sein, das es keine großer aufwand wäre…
mit deiner methode müßte ich erst mal die referenzierungen ausschalten (geht das überhaupt global für alle tabellen oder immer nur einzeln?) und dann für jedes table eine “delete from”-statement absetzen…

bei 200 tabellen ein größeres unterfangen…

Wie wäre es so?

SELECT * from pg_tables WHERE schemaname = ‘public’ AND tablename NOT LIKE ‘BLZ’;

Dann hast du mal die Liste aller Tabellen die du löschen willst.
Das ganze durch eine FOR LOOP schleife durch jagen und ein EXECUTE DELETE from foo.tablename

Danach müssten alle Tabellen leer sein.