Мне всегда было удобнее создавать сценарий 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.(где c.relname ilike 'bubba%')
Вывод выглядит следующим образом:
Name
-----------------------
drop table public.a1;
drop table public.a2;
Итак, сохраните его в файле .sql и запустите с помощью psql -f filename.sql