Wie kann man alle oder bestimmte Tabellen, die ein Kriterium erfüllen (z.B. gleiches Prefix im Tabellennamen) löschen?
Also einzelne Benannte kann man ja in der psql-shell mit
drop table tableA, tableB;
oder
drop table tableA, tableB CASCADE;
angeben.
Also sowas wie (Pseudocode):
DROP TABLES;
oder
DROP TABLE LIKE 'bla_%';
oder
DROP TABLE SELECT table_name FROM information_schema.tables
WHERE table_schema='public' AND table_name LIKE 'bla_%';
müsste doch über die psql-shell doch irgendwie gehen?
Das gleiche gilt natürlich auch für VIEWS, TRIGGER, FUNCTION, OPERATOR.
Diese Funktionalität vermisse ich bzw. weiss noch nicht wie’s geht.
Bei ca. 500 Tabellen, 70 Views, 140 Triggern wird es sonst ziemlich nervig, wenn man einen Teil davon löschen will.
Im grafischen pgAdmin3 habe ich inzwischen folgendes herausgefunden: in der Tabellenliste die gewünschten Tabellen mit
SHIFT + Pfeilnachunten
oder
SHIFT + Bildnachunten
oder
SHIFT + Ende
auswählen und dann RechtMaus-Kontexmenü - ‘Löschen/Droppen’ bzw. ‘Kaskadiert droppen’ wählen.
Aber wie kann man das auf der Shell lösen?
Grüße, peterdd