将两个Postgresql类似的表组合在两台不同的机器上

时间:2013-03-22 10:34:34

标签: sql postgresql postgresql-9.2

我有两台带有PostgreSQL的Windows机器(PC1和PC2)。在PC1中我有表:

enter image description here

在PC2中,我有相同的表格,其中包含以下记录:

enter image description here

我想将两个表组合在一起并将它们放在PC1中(顺序并不重要):

enter image description here

怎么办?我正在使用PostgreSQL 9.2& pgAdminIII。如果可能的话,我更喜欢使用USB记忆棒而不是网络传输数据。

2 个答案:

答案 0 :(得分:1)

您可以直接转储数据:

pg_dump --data-only dbname > outfile.sql

这将为您提供所有数据的文件。如果在将此数据插回另一个节点时您不得不担心重复,那么这是一个大问题。

这是您导入数据的方式:

psql --set ON_ERROR_STOP=on dbname < outfile.sql

如果您继续需要同步这两个数据库,另一个解决方案是使用PostgreSQL的一些复制策略。 http://www.postgresql.org/docs/9.2/static/warm-standby.html#STREAMING-REPLICATION

答案 1 :(得分:1)

这就是我要做的:

PC1-&GT; pgadmin-&GT; yourtablename - &gt;右键单击 - &gt;备份

文件选项:格式:普通,编码:your_ecnoding

转储选项#1:仅使用数据,使用列插入。

这将创建sql查询。 将yourtablename替换为yourtablename2 ,并在PC2上将其取消

删除重复记录并添加数据:

delete from yourtablename2 where id in (select id from yourtablename)

insert into yourtablename 
select * from yourtablename2

drop table yourtablename2