0

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

我的用例是这样的:

  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'

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

4

1 回答 1

0

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

例如

RAISE NOTICE 'my exact query statement: %', current_query();
于 2022-01-03T18:53:51.710 回答