如何在PostgreSQL中从database2中的函数更新database1中的表?

如何在PostgreSQL中从database2中的函数更新database1中的表?,sql,database,postgresql,plpgsql,Sql,Database,Postgresql,Plpgsql,是否有方法从database2中的函数更新database1中的表(两个数据库位于同一台服务器上)?基本上是PostgreSQL中的跨数据库更新 函数由触发器执行,但这不重要 -=编辑=- 我知道我可以使用DBLink实现,但我希望尽可能少地修改源数据库。我正在寻找一些其他选项。DBLink将是实现这一点的标准方法,如果它可用的话。如果没有,如果您安装了过程语言(而不是PL/pgsql),比如PL/pgperl,则可以使用该语言连接到数据库2并调用update语句。或者,您可以使用过程语言调用调

是否有方法从database2中的函数更新database1中的表(两个数据库位于同一台服务器上)?基本上是PostgreSQL中的跨数据库更新

函数由触发器执行,但这不重要

-=编辑=-
我知道我可以使用DBLink实现,但我希望尽可能少地修改源数据库。我正在寻找一些其他选项。

DBLink将是实现这一点的标准方法,如果它可用的话。如果没有,如果您安装了过程语言(而不是PL/pgsql),比如PL/pgperl,则可以使用该语言连接到数据库2并调用update语句。或者,您可以使用过程语言调用调用psql的shell脚本来执行更新

您可以将两个数据库放在同一个Postgresql数据库中,但模式不同


这样,它们在逻辑上仍然是分开的,并且没有名称冲突,但是您可以访问模式之间的对象。

不清楚您在寻找什么

您知道PostgreSQL中的数据库是独立的,您不能直接(按设计)从一个数据库访问另一个数据库

您知道dblink扩展允许您连接两个数据库(相同或不同的服务器)

您会发现dblink扩展太具有侵略性(我怀疑,排除了small_duck合并两个数据库的想法)


我不确定你认为会存在比dblink更简单的东西,因为dblink是这个领域的默认选择。

看来没有其他选择了。我得出的结论是,在我的应用程序中部署dblink.dll毕竟不是什么坏主意。谢谢你的回答。我正在做的是为使用postgresql的应用程序编写扩展。我希望尽可能避免部署dblink来干扰应用程序数据库。根据回答,这似乎是唯一的办法(考虑到扩展的工作量和性能)。