在重建之前,我经常需要删除PostgreSQL数据库中的所有数据。如何直接在SQL中执行此操作
目前,我已经设法想出了一个SQL语句,它返回我需要执行的所有命令:
选择“截断表”| |表名| |”来自pg_表,其中tableowner='MYUSER';
但是一旦我有了它们,我就看不到一种以编程方式执行它们的方法
FrustratedWithFormsDesigner是正确的,PL/pgSQL可以做到这一点。以下是脚本:
创建或替换函数truncate_表(VARCHAR中的用户名)返回void作为$$
声明
游标的语句
从pg_表中选择tablename
其中tableowner=username,schemaname=public;
开始
FOR stmt IN语句循环
执行'TRUNCATE TABLE'| | quote_ident(stmt.tablename)| |'CASCADE;';
端环;
终止
$$语言plpgsql;
这将创建一个存储函数(您只需执行一次),以后可以这样使用:
选择truncate_tables('MYUSER');