全部
我正在尝试在 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/