我如何在PostgreSQL中销毁架构的所有表

时间:2015-11-12 12:44:42

标签: postgresql

我在schema public中有一些表;

我想破坏架构中的所有表。像DROP TABLE public。*

2 个答案:

答案 0 :(得分:3)

我通常这样做(我已经评论过执行查询,只会打印出来):

do $$
declare
    rec record;
    query text;
begin
    for rec in select * from pg_tables where schemaname = 'public'
    loop
        query = format('drop table %s.%s', rec.schemaname, rec.tablename);
        raise notice '%', query;
        --execute query;
    end loop;
end
$$ language plpgsql;

当我只想执行某些代码但又不想创建存储过程时,我使用了很酷的DO

答案 1 :(得分:0)

如果所有表都在同一模式(公共)中:

DROP SCHEMA public CASCADE;

CREATE SCHEMA public;