有没有办法从 database2 中的函数更新 database1 中的表(两个数据库都在同一台服务器上)?基本上是 PostgreSQL 中的跨数据库更新。
函数由触发器执行,但这无关紧要。
-= 编辑 =- 我知道我可以使用 DBLink 来实现,但我想尽可能少地修改源数据库。我正在寻找其他一些选择。
有没有办法从 database2 中的函数更新 database1 中的表(两个数据库都在同一台服务器上)?基本上是 PostgreSQL 中的跨数据库更新。
函数由触发器执行,但这无关紧要。
-= 编辑 =- 我知道我可以使用 DBLink 来实现,但我想尽可能少地修改源数据库。我正在寻找其他一些选择。
您可以将两个数据库放在同一个 Postgresql 数据库中,但使用不同的模式。
这样,它们在逻辑上仍然是分开的,并且没有名称冲突,但是您可以访问模式之间的对象。
如果可用,DBLink 将是执行此操作的标准方法。如果没有,如果您安装了诸如 PL/pgperl 之类的过程语言(PL/pgsql 除外),您可以使用该语言连接到数据库 2 并调用您的更新语句。或者您可以使用过程语言来调用一个调用 psql 来进行更新的 shell 脚本。
目前尚不清楚您在寻找什么。
您知道 PostgreSQL 中的数据库是独立的,您不能直接从另一个访问一个(根据设计)。
您知道 dblink 扩展允许您连接两个数据库(相同或不同的服务器)。
您会发现 dblink 扩展过于侵入(我怀疑,排除了 small_duck 合并两个数据库的想法)。
鉴于 dblink 是该领域的默认选择,我不确定您认为会存在什么比 dblink 更简单。