我试过了..
select 'drop table if exists "' || tablename || '" cascade;'
from pg_tables
where schemaname = 'public';
但似乎没有用于一个命令?
答案 0 :(得分:56)
如果您的所有表都在一个模式中,这种方法可以工作(下面的代码假定您的模式的名称是'public')
drop schema public cascade;
create schema public;
Drop all tables in PostgreSQL?
请参阅以上链接以获取更多答案
答案 1 :(得分:10)
运行以下bash脚本:
psql -h <pg_host> -p <pg_port> -U <pg_user> <pg_db> -t -c "select 'drop table \"' || tablename || '\" cascade;' from pg_tables where schemaname='public'" | psql -h <pg_host> -p <pg_port> -U <pg_user> <pg_db>
我是从这里复制的:http://www.commandlinefu.com/commands/view/12989/postgresql-drop-all-tables-from-a-schema
它对我有用。