我正在不同机器上使用相同的数据库架构(PostgreSQL)。 我想知道如何从一台计算机合并数据到另一台计算机。 架构有许多表格(约10个)。 我想要实现什么?
- 从机器A转储数据到文件A.dmp
- 从文件A.dmp恢复数据到机器B
- 当记录已经存在于机器B中时,我想不将其插入到机器B中。
我试图从机器A转储数据到简单的SQL插入命令,但在尝试恢复它时,我遇到了重复键错误。 更重要的是,我想通过命令行还原数据(我必须导入250 MB数据),因为现在我正试图使用pgAdmin手动完成它。
最佳方法是什么?
insert into schema1.table1 select * from schema2.table1
吗? - Dariusz Mydlarzinsert into schema1.table1 dst select * from schema2.table1 WHERE NOT EXISTS (SELECT * FROM schema2.table1 nx WHERE nx.pk = dst.pk);
此外,按正确的“拓扑”顺序进行排序,以便在引用之前填充FK。注意:可能有更聪明的方法来完成它,但对于只有十个表来说,这不算太多的工作。 - joop