根据下面的错误消息(和this Google result),我猜答案是"否",但是否仍然可以使用PostgreSQL执行跨数据库查询?

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

我正在处理一些跨两个数据库进行分区的数据,尽管数据实际上是在两个数据库之间共享的(一个数据库中的userid列来自另一个数据库中的users表).我不知道为什么这是两个独立的数据库而不是模式,但这就是生活...

推荐答案

Note: As the original asker implied, if you are setting up two databases on the same machine you probably want to make two 100 instead - in that case you don't need anything special to query across them.

博士后

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

注意有foreign data wrappers for other popular data sources个.目前,只有博士后file_fdw是官方博士后分布的一部分.

对于9.3之前的Postgres版本

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

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

Sql相关问答推荐

在Postgres中实现合并功能的干净方法,因为当目标/源不匹配时

在SQL中返回缺省值,即使查询不返回任何结果

我怎样才能得到列值对应的最大值在另一个?

如何用客户名称计算sum(dr)和sum(cr)

SQL Athena/prest判断值是否在嵌套的json数组中

当active=1时,是否可以创建id为的唯一索引?

Grafana SQL 模板变量(值、文本)

除了风格之外,还有什么理由更喜欢简单的CASE WHEN而不是搜索呢?

日期逻辑(查找过go 90 天内的第一个匹配行)

SQL Server:时态表并在运行时添加计算列

在where语句中使用CTE非常缓慢

为 sqlite 全文搜索 (fts) 创建触发器时出现虚拟表的不安全使用

使用 R 遍历 SQL 查询,每次替换一个变量

如何在 PL/SQL 中区分返回的 XML 值?

查找具有相同连接列数据的所有记录

Postgres 条件求和函数

运算符不存在:integer = bigint[]

面对来自以下两个代码的不同输出

如何使用 pg-promise 创建要在复杂的 sql 查询中使用的 VALUES 列表?

sql count distinct by column 和 sum false 和 true