我有两台装有 PostgreSQL 的 Windows 机器(PC1 和 PC2)。在 PC1 中,我有一张桌子:
在 PC2 中,我有同一张表,其中包含以下记录:
我想组合两个表并将它们放在 PC1 中(顺序不重要):
怎么能这样做?我正在使用 PostgreSQL 9.2 和 pgAdminIII。如果可能的话,我更喜欢使用 U 盘而不是网络传输数据。
我有两台装有 PostgreSQL 的 Windows 机器(PC1 和 PC2)。在 PC1 中,我有一张桌子:
在 PC2 中,我有同一张表,其中包含以下记录:
我想组合两个表并将它们放在 PC1 中(顺序不重要):
怎么能这样做?我正在使用 PostgreSQL 9.2 和 pgAdminIII。如果可能的话,我更喜欢使用 U 盘而不是网络传输数据。
您可以将数据转储出去:
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
这就是我会做的:
PC1-> pgadmin-> yourtablename -> 右键-> 备份
文件选项:格式:普通,编码:your_ecnoding
转储选项 #1:仅数据,使用列插入。
这将创建 sql 查询。用 yourtablename2 替换 yourtablename并在 PC2 上执行它
删除重复记录并添加数据:
delete from yourtablename2 where id in (select id from yourtablename)
insert into yourtablename
select * from yourtablename2
drop table yourtablename2