【问题标题】:How to execute same query in remote postgres server from inside "BEFORE TRIGGER"如何从“BEFORE TRIGGER”内部在远程 postgres 服务器中执行相同的查询
【发布时间】:2021-12-15 21:01:39
【问题描述】:

我计划在本地服务器上执行查询时在远程数据库服务器上运行完全相同的查询,在插入、更新和删除触发器之前。

我的用例是这样的:

  1. 使用 db_link 连接远程服务器
  2. 想要在本地服务器中进一步处理之前对远程服务器执行相同的查询。

您可能会告诉我在新查询中使用 OLD 和 NEW 对象来格式化数据,但我在 UPDATE 和 DELETE 查询中有一种情况,因为我们使用 WHERE 子句,这不一致,因为我们要使用哪个列执行操作是未知的,例如

DELETE FROM my_table WHERE col1 = 'possibility1' OR col2 = 'possibility2'

还有另一种可能

DELETE FROM my_table WHERE col1 = 'possibility1' AND col3 = 'possibility2'

现在的问题是如何在触发器中访问这个完整的查询以在远程服务器上运行同样的查询

【问题讨论】:

    标签: sql postgresql postgresql-triggers


    【解决方案1】:

    想出了这个问题的解决方案。我在触发器内部使用current_query() 来获取导致触发器调用的确切查询字符串。

    例如

    RAISE NOTICE 'my exact query statement: %', current_query();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多