目前,我设法提出一个SQL语句,返回所有我需要执行的命令:
SELECT 'TruncATE table ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER';
但我不能看到一种方式来执行他们的程序化一旦我有他们。
FrustrateDWithFormsDesigner是正确的,PL / pgsql可以做到这一点。这里是脚本:CREATE OR REPLACE FUNCTION truncate_tables(username IN VARCHAR) RETURNS voID AS $$DECLARE statements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = username AND schemaname = 'public';BEGIN FOR stmt IN statements LOOP EXECUTE 'TruncATE table ' || quote_IDent(stmt.tablename) || ' CASCADE;'; END LOOP;END;$$ LANGUAGE plpgsql;
这创建了一个存储的函数(你需要这样做只是一次),你可以使用后,像这样:
SELECT truncate_tables('MYUSER');
HTH!
总结以上是内存溢出为你收集整理的postgresql – 截断Postgres数据库中的所有表全部内容,希望文章能够帮你解决postgresql – 截断Postgres数据库中的所有表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)