是否可以使用 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
来执行此操作。 tb1
和tb2
表示您的表。将table1
和table2
替换为表名,db2
替换为其他数据库名称。
您可以使用dblink
或foreign_table
postgresql_fdw
。
- 数据库链接
dblink 是一个模块,它支持从数据库会话中连接到其他 PostgreSQL 数据库。
您可以在此处阅读文档。
- 外表
postgres_fdw模块提供了外部数据包装器postgres_fdw,可用于访问存储在外部 PostgreSQL 服务器中的数据。此模块提供的功能与旧版 dblink 模块的功能大有重叠。但postgres_fdw为访问远程表提供了更透明且符合标准的语法,并且在许多情况下可以提供更好的性能。
您可以在此处阅读文档。