连接来自不同数据库的表(PostgreSQL)



是否可以使用 PostgreSQL 连接位于同一服务器中的不同数据库的表?如果是这样,如何?

假设你在数据库中db1在postgres中。然后

SELECT * FROM table1 tb1 
LEFT JOIN (SELECT * FROM dblink('dbname=db2','SELECT id, code FROM table2') 
AS tb2(id int, code text);) 
USING (code)

将在所述列上加入 TB1 和 TB2(来自不同数据库的其他表(。在示例中,我使用了dblink来执行此操作。 tb1tb2表示您的表。将table1table2替换为表名,db2替换为其他数据库名称。

您可以使用dblinkforeign_table postgresql_fdw

  1. 数据库链接
dblink 是一个模块,它支持从数据库会话中连接到其他 PostgreSQL 数据库。

您可以在此处阅读文档。

  1. 外表
postgres_fdw模块提供了外部数据包装器postgres_fdw,可用于访问存储在外部 PostgreSQL 服务器中的数据。此模块提供的功能与旧版 dblink 模块的功能大有重叠。但postgres_fdw为访问远程表提供了更透明且符合标准的语法,并且在许多情况下可以提供更好的性能。

您可以在此处阅读文档。

相关内容

  • 没有找到相关文章