Je me suis toujours senti plus à l'aise en créant un script sql que je peux revoir et tester avant de l'exécuter, plutôt que de compter sur le plpgsql pour qu'il ne fasse pas exploser ma base de données. Quelque chose de simple en bash qui sélectionne les noms d'onglet à partir du catalogue, puis crée les déclarations de dépôt pour moi. Ainsi, pour 8.4.x, vous obtiendrez cette requête de base :
SELECT 'drop table '||n.nspname ||'.'|| c.relname||';' as "Name"
FROM pg_catalog.pg_class c
LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind IN ('r','v','S','')
AND n.nspname <> 'pg_catalog'
AND n.nspname <> 'information_schema'
AND n.nspname !~ '^pg_toast'
AND pg_catalog.pg_table_is_visible(c.oid);
À laquelle vous pouvez ajouter une clause where. ( where c.relname ilike 'bubba%'
)
La sortie ressemble à ceci :
Name
-----------------------
drop table public.a1;
drop table public.a2;
Donc, sauvegardez-le dans un fichier .sql et exécutez-le avec psql -f nomfichier.sql.