从 Postgresql 中的相同 table (Database2) 更新 table (Database1)

Update a table (Database1) from the same table (Database2) in Postgresql

我有两个具有相似数据的数据库,但我想做的是将 sample_table 的更改从 Database2 更新为 sample_table 的数据库 1.

示例:

数据库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字段中的数据,我想应用[=38中的更改=] 在数据库 1 中。要执行什么 SQL 查询来执行此操作?我正在使用 pgAdminIII 和 pgAdmin4。 (两个数据库在同一台服务器上)

如有任何问题,请在下方评论。

这个问题没有单一的答案,您可以通过多种方式解决它。让我们列举几个:

  • 为 Database2 创建一个简单的 sql 转储,编辑 table 名称以不同于 Database1 tables。执行修改后的 sql 转储到 Database1 中,将所有数据放入同一个数据库中。通过 id.

  • 执行从导入的 tables 到原始 joining/matching 元组的更新
  • 像建议的那样:创建一个 postgres_fdw 类型的外部数据包装器作为 described 以使用它直接从外部数据源更新原始 tables postgres.

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

  • 使用一种(ETL,或Replication)软件系统可以保持数据库更新。 Bucardo or Kettle(Pentaho Data Integration) 之类的东西可以解决问题。

一切都取决于您需要多复杂或多简单的解决方案,一次或几次使用还是长期使用