我是Postgres的新手,只是发现我无法在一个SQL查询中访问不同数据库的数据。并且还了解了Postgres中架构的概念。
现在,我有两个数据库
db1和db2
两者在其公共模式中都有具有相同名称的表。
现在,我想在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。它允许访问不同数据库的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句