Мені завжди було набагато зручніше створювати скрипт sql, який я можу переглянути та протестувати, перш ніж запустити його, ніж покладатися на те, щоб отримати plpgsql в самий раз, щоб він не здув мою базу даних. Щось просте в bash, яке вибирає імена таблиць з каталогу, а потім створює для мене оператори drop. Отже, для 8.4.x ви отримаєте цей основний запит:
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);
До якого можна додати речення where. ( where c.relname ilike 'bubba%'
)
Результат виглядає так:
Name
drop table public.a1;
drop table public.a2;
Отже, збережіть це у файл .sql та запустіть його за допомогою psql -f filename.sql