参见英文答案 >
Truncating all tables in a Postgres database 9个
我试图使用Postgresql截断模式中的所有表.它显示此错误:
我试图使用Postgresql截断模式中的所有表.它显示此错误:
ERROR: relation "Building" does not exist CONTEXT: sql statement "TruncATE TABLE "Building" CASCADE" PL/pgsql function truncate_schema(character varying) line 15 at EXECUTE statement
这是我使用的功能:
CREATE OR REPLACE FUNCTION truncate_schema(schema IN VARCHAR) RETURNS void AS $$ DECLARE statements CURSOR FOR SELECT table_name FROM @R_4_4045@ion_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema = schema; BEGIN FOR stmt IN statements LOOP EXECUTE 'TruncATE TABLE ' || quote_ident(stmt.table_name) || ' CASCADE'; END LOOP; END; $$LANGUAGE plpgsql;
怎么做得好?
解决方法
试试这样
CREATE OR REPLACE FUNCTION truncate_schema(_schema character varying) RETURNS void AS $BODY$ declare selectrow record; begin for selectrow in select 'TruncATE TABLE ' || quote_ident(_schema) || '.' ||quote_ident(t.table_name) || ' CASCADE;' as qry from ( SELECT table_name FROM @R_4_4045@ion_schema.tables WHERE table_type = 'BASE TABLE' AND table_schema = _schema )t loop execute selectrow.qry; end loop; end; $BODY$ LANGUAGE plpgsql
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。