从Postgresql中的同一表(Database2)更新表(Database1)

时间:2018-06-26 15:40:10

标签: sql postgresql pgadmin

我有两个数据相似的数据库,但我要做的是将 sample_table从Database2 更改为 Database1的sample_table

示例:

数据库1 [ sample_table ]

ID     Reference      Name
0001   Ref0001        Test1
0002   Ref0002        Test2

数据库2 [ sample_table ]-进行了更改

ID     Reference      Name
0001   Ref0001        Name1
0002   Ref0002        Name2

在Database2的 sample_table 中,我更改了Name字段中的数据,并想应用Database1的 sample_table 中的更改。要执行此操作的SQL查询?我正在使用pgAdminIII和pgAdmin4。 (两个数据库都在同一服务器上)

如有任何疑问,请在下面评论。

1 个答案:

答案 0 :(得分:0)

该问题没有单一答案,您可以通过多种方式解决。让我们列举一些:

  • 为Database2创建一个普通的sql转储,将表名编辑为与Database1表不同。将修改后的sql转储执行到Database1中,以将所有数据存储到同一数据库中。执行从导入的表到原始表的更新,这些表通过id连接/匹配元组。

  • 像建议的那样:创建一个类型为described的postgres_fdw类型的外部数据包装器,以使用它直接在postgres中从外部数据源更新原始表。

  • 创建一个简单的外部脚本,该脚本连接到两个数据库以从一个数据库读取以更新为另一个数据库。

  • 使用一种(ETL或复制)软件系统可以保持数据库更新。像BucardoKettle(Pentaho Data Integration)这样的东西就可以解决问题。

全部取决于您需要的解决方案的复杂程度,一次或几次使用或长期使用