我试图在Postgres中从一个数据库复制整个表到另一个数据库。有什么建议吗?


当前回答

要在本地设置中将一个表从数据库a移动到数据库B,使用以下命令:

pg_dump -h localhost -U owner-name -p 5432 -C -t table-name database1 | psql -U owner-name -h localhost -p 5432 database2

其他回答

要在本地设置中将一个表从数据库a移动到数据库B,使用以下命令:

pg_dump -h localhost -U owner-name -p 5432 -C -t table-name database1 | psql -U owner-name -h localhost -p 5432 database2

使用pg_dump转储表数据,然后使用psql恢复。

如果你有两个远程服务器,那么你可以这样做:

pg_dump -U Username -h DatabaseEndPoint -a -t TableToCopy SourceDatabase | psql -h DatabaseEndPoint -p portNumber -U Username -W TargetDatabase

它会将源数据库中提到的表复制到目标数据库中同名的表,如果您已经有了模式。

使用dblink会更方便!

truncate table tableA;

insert into tableA
select *
from dblink('hostaddr=xxx.xxx.xxx.xxx dbname=mydb user=postgres',
            'select a,b from tableA')
       as t1(a text,b text);

必须使用DbLink将一个表数据复制到不同数据库中的另一个表中。 您必须安装和配置DbLink扩展才能执行跨数据库查询。

我已经在这个话题上创建了详细的帖子。 请访问此链接