小编典典

可以使用 PostgreSQL 执行跨数据库查询吗?

all

根据下面的错误消息(和这个谷歌结果),我猜答案是“否” ,但是有没有使用 PostgreSQL 执行跨数据库查询?

databaseA=# select * from databaseB.public.someTableName;
ERROR:  cross-database references are not implemented:
 "databaseB.public.someTableName"

我正在处理一些跨两个数据库分区的数据,尽管数据实际上是在两个数据库之间共享的(一个数据库中的用户 ID
列来自另一个数据库中的users表)。我不知道为什么这些是两个独立的数据库而不是模式,但是 c’est la vie…


阅读 32

收藏
2022-08-05

共1个答案

小编典典

注意:正如最初的提问者暗示的那样,如果您在同一台机器上设置两个数据库,您可能想要创建两个
模式
-
在这种情况下,您不需要任何特殊的东西来查询它们。

postgres_fdw

使用postgres_fdw(外部数据包装器)连接到任何 Postgres 数据库中的表 - 本地或远程。

请注意,其他流行数据源也有外来数据包装器。目前,只有postgres_fdwfile_fdw是官方
Postgres 发行版的一部分。

对于 9.3 之前的 Postgres 版本

不再支持这个旧版本,但如果您需要在 2013 年之前的 Postgres
安装中执行此操作,则有一个名为dblink.

我从未使用过它,但它与 PostgreSQL 的其余部分一起维护和分发。如果您使用的是 Linux 发行版附带的 PostgreSQL
版本,您可能需要安装一个名为 postgresql-contrib 的包。

2022-08-05