【问题标题】:PostgreSQL trigger execute operations on different databasePostgreSQL 在不同的数据库上触发执行操作
【发布时间】:2017-10-23 10:56:00
【问题描述】:

如何在特定触发器上对不同数据库执行操作?当在我的表中插入一个值时,我想在另一个数据库和表中插入相同的数据(在执行之前应用逻辑)。

  • 如何在我的触发器中实现它?
  • 如何与第二个数据库关联?

【问题讨论】:

  • postgres_fdwdblink 或监听/通知和本地触发。无论如何,也许你把事情复杂化了?..

标签: postgresql database-trigger


【解决方案1】:

您将通过postgres_fdw 更新第二个数据库中的表。

但在实施这样的解决方案之前,请停下来思考一下。

结果是插入值的事务在将值插入远程表之前不会完成。这将大大减慢事务处理速度,如果远程数据库由于某种原因关闭,您的INSERT 将失败。

数据重复通常是个问题。通常只存储一次是更好的解决方案。是什么让您无法使用 postgres_fdw 访问另一个数据库中的数据?

【讨论】:

  • 这是因为我不仅需要数据集的复制,还需要每个实体的历史路径,在我的主数据库中我只有当前信息,在我的历史数据库中我有所有的历史。例如,我的主数据库中的更新需要是一个新插入,告诉我从瞬间 t1 到瞬间 t2,实体的值是确定的,然后在 t2 信息发生变化并变成其他东西,如果我想知道我有什么数据在特定的时间我可以参加比赛,希望我解释一下
  • 您最好在本地进行更新,然后在其他地方复制表。这样,如果复制失败/落后,事务仍然会进行,一旦重新建立复制,它将自动赶上,所有这些都不会对您的主数据库产生负面影响。
猜你喜欢
  • 2013-08-04
  • 2015-03-27
  • 2020-05-10
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 2022-04-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多