我是 Postgres 的新手,刚刚发现我无法在一个 SQL 查询中访问不同数据库的数据。并且还学习了 Postgres 中模式的概念。
现在,我有两个数据库
db1 和 db2
两者在其公共(public)模式中都有同名的表。
现在,我想在 db1 中创建一个名为 new_schema 的新模式
并将数据从 db2.public 移动到 db1.new_schema
最简单的方法是什么?
最佳答案
最简单的方法是重命名模式。但是,您必须确保您是 db1 数据库的唯一用户。
首先,在 db1 中隐藏您的公开模式:
alter schema public rename to original_public;
create schema public;
接下来,做备份和恢复:
$ pg_dump --format custom --file "my_backup" --schema "public" "db2"
$ pg_restore --dbname "db1" "my_backup"
最后,重新创建适当的架构名称:
alter schema public rename to my_schema;
alter schema original_public rename to public;
另一种选择是使用 dblink.它允许访问不同数据库的数据。
关于database - Postgres : Best way to move data from public schema of one DB to new schema of another DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24080832/