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

How I do destroy all tables for schema in PostgreSQL

我在schema public中有一些表;

我想销毁模式中的所有表。就像公共的Drop Table。*


我通常这样做(我已经对查询的执行进行了注释,它只会被打印出来):

1
2
3
4
5
6
7
8
9
10
11
12
13
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;

当我只想执行一些代码但不想创建存储过程时,我会使用cool do-thing。


如果所有表都在同一架构中(公共):

删除架构公共层叠;

创建架构public;