如何在一个 *** 作中更改多个PostgreSQL表的模式?

如何在一个 *** 作中更改多个PostgreSQL表的模式?,第1张

概述我有一个PostgreSQL 9.1数据库,其中有100个表被加载到’public’模式中。我想将这些表(但不是所有的“public”中的所有函数)移动到“数据”模式。 我知道我可以使用以下来一次移动1个表。 ALTER TABLE [tablename] SET SCHEMA [new_schema] 在一个 *** 作中是否可以将所有表移动到新模式?如果是这样,那么完成这项任务最有效的方法是什么? D 我有一个Postgresql 9.1数据库,其中有100个表被加载到’public’模式中。我想将这些表(但不是所有的“public”中的所有函数)移动到“数据”模式。

我知道我可以使用以下来一次移动1个表。

ALTER table [tablename] SET SCHEMA [new_schema]

在一个 *** 作中是否可以将所有表移动到新模式?如果是这样,那么完成这项任务最有效的方法是什么?

DO会做的诀窍:
DO$$DECLARE    row record;BEGIN    FOR row IN SELECT tablename FROM pg_tables WHERE schemaname = 'public' -- and other conditions,if needed    LOOP        EXECUTE 'ALTER table public.' || quote_IDent(row.tablename) || ' SET SCHEMA [new_schema];';    END LOOP;END;$$;
总结

以上是内存溢出为你收集整理的如何在一个 *** 作中更改多个PostgreSQL表的模式?全部内容,希望文章能够帮你解决如何在一个 *** 作中更改多个PostgreSQL表的模式?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1170825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存