postgresql - 在 PostgreSQL 中使用 dblink 时如何包含模式 inf?

标签 postgresql database-schema

全部

我正在尝试在 PostgreSQL 中使用 dblink 在不同的数据库上运行查询。如果表“user”在公共(public)模式下,则以下工作:

select * from dblink(
'hostaddr=1.2.3.4 port=5434 dbname=dbname user=username password=password',
'select id from user')
       as t1(
       id bigint
);

但是,我需要在其他一些定义的模式上运行查询。有谁知道如何在上述查询中添加架构信息?我无法从 PostgreSQL 文档中弄清楚。

最佳答案

当你像这样写 SQL 查询时

SELECT id FROM user

PostgreSQL 会使用 schema search path 将像 user 这样的表名解析为像 schema.tablename 这样的完全限定名。 ,默认设置为 "$user",public

换句话说,除非您调整服务器配置,否则 user 将解析为 public.user

但是,您可以在语句中明确指定架构,如下所示:

SELECT id FROM otherschema.user

关于postgresql - 在 PostgreSQL 中使用 dblink 时如何包含模式 inf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14145261/

相关文章:

mysql - 如何将一张表与另一张表多次连接?

mysql - 维护 MySQL 数据库表中元素的顺序或在 MySQL 的特定位置插入新行

php - Laravel 5 更新单行限制不起作用

json - 将一对多关系检索到 JSON sql pure、Golang、Performance

c# - 优化日历应用程序的查询和/或数据模型

ruby-on-rails - rails : Loading schema into secondary database

MongoDB图表设计工具

java - JOOQ PostgreSQL 连接导致 InvalidResultException

postgresql - 有什么方法可以使用 native ACID 兼容数据库来获取 Meteor?

sql - 测试正常时正则表达式无法正常工作