在Postgresql

时间:2018-11-27 12:55:37

标签: postgresql database-trigger foreign-data-wrapper postgres-fdw

我有两个数据库db1和db2。db2具有外部表,例如tableA,其架构已从db1导入。每次行更新时,触发器都在db1中的tableA上运行。 现在使用postgres_fdw,我可以从db2中获取记录,但是由于该触发器功能而无法更新tableA上的任何记录。在禁用触发器的情况下,更新可以正常进行。我需要该触发器作为审核日志。

请为我提供解决此问题的合适建议。我使用的是Postgres 9.6。

1 个答案:

答案 0 :(得分:0)

确保建立链接的用户可以访问审核表。

您还可以将所需的架构添加到触发函数搜索路径:

CREATE OR REPLACE FUNCTION abc.mytrigger() RETURNS trigger AS
$BODY$BEGIN
 [...] -- do something in the xyz schema
  RETURN NEW;
END;$BODY$ 
LANGUAGE plpgsql 
SET search_path = xyz;