在PostgreSQL中访问外部数据库的方法

时间:2015-08-27 20:58:42

标签: database postgresql foreign-keys

我有两种方法可以在PostgreSQL中访问不同的外部数据库。

  1. dblink
  2. postgres_fdw
  3. 是否有可能在外部数据库上运行函数(select-like)并获得其结果(不使用dblink)?

    我知道dblink性能很差,并且在询问db时会创建多个函数,这会阻碍使用自己的函数进行组织。但是,postgres_fdw只能处理表(?)

1 个答案:

答案 0 :(得分:0)

postgres_fdw也可以处理视图,因此您可以隐藏外部数据库中视图后面的函数调用:

CREATE VIEW fn_f AS SELECT * FROM f()

如果您不想对外国数据库进行更改,那么我认为您必须使用dblink。我怀疑在性能方面会有很大差异,如果有的话。

注意postgres_fdw还在本地数据库中创建了一些函数;如果您尝试保持组织有序,请考虑将扩展安装到单独的架构中。