【发布时间】:2020-07-20 03:50:38
【问题描述】:
我已经为第二个 Postgres 数据库建立了一个外部数据包装器并导入了外部模式。现在,当我尝试从我的主数据库向其中一个外部表中插入一行时,它会遇到一个在插入触发器上调用的函数。此触发器正在检查外部表上存在的另一个表,但它说“关系“the_other_table”不存在。我可以从主数据库中选择它,但在执行触发器时它看不到它。
我尝试使用相同名称的两个架构,然后将架构重新导入到不同的名称,但仍然没有。就好像它正在我的主表上执行触发器,但不知道在哪里寻找另一个表。
有什么想法吗?
【问题讨论】:
-
你能举个例子吗?您是否使用模式名称完全限定表名?
-
数据库:CONV(我希望编写脚本并将外部模式导入到的位置,以及 INTERIM(我希望插入的原始数据库。我正在尝试插入到INTERIM 从 CONV 执行(我希望我的所有转换脚本都驻留在那里)。使用 INSERT INTO(在 CONV 上)它会触发调用函数的 INTERIM 表上的触发器。此函数检查表中的值,然后以“运行函数时关系“s_the_other_table”不存在”
-
是的,我使用的是完整的 schema.table_name。在 INTERIM 数据库上运行相同的脚本可以工作。使用 foreign_schema.table_name 从 CONV 运行它不会。
标签: postgresql triggers schema postgres-fdw