我有两种方法可以在PostgreSQL中访问不同的外部数据库。
dblink
postgres_fdw
是否有可能在外部数据库上运行函数(select-like)并获得其结果(不使用dblink)?
我知道dblink
性能很差,并且在询问db时会创建多个函数,这会阻碍使用自己的函数进行组织。但是,postgres_fdw只能处理表(?)
答案 0 :(得分:0)
postgres_fdw
也可以处理视图,因此您可以隐藏外部数据库中视图后面的函数调用:
CREATE VIEW fn_f AS SELECT * FROM f()
如果您不想对外国数据库进行更改,那么我认为您必须使用dblink
。我怀疑在性能方面会有很大差异,如果有的话。
注意postgres_fdw
还在本地数据库中创建了一些函数;如果您尝试保持组织有序,请考虑将扩展安装到单独的架构中。