3

是否可以使用 PostgreSQL 连接来自同一服务器中不同数据库的表?如果是这样,怎么做?

4

2 回答 2

9

假设您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代表你的桌子。将table1and替换table2为您的表名和db2其他数据库名称。

于 2018-01-27T12:10:34.603 回答
7

您可以使用dblinkforeign_table通过postgresql_fdw.

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

你可以在这里阅读文档。

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

你可以在这里阅读文档。

于 2018-01-27T11:24:49.077 回答