所有
我试图在PostgreSQL中使用dblink在不同的数据库上运行查询。如果表“user”位于公共模式下,则以下情况有效:
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文档中找到它。
答案 0 :(得分:1)
编写
之类的SQL查询时SELECT id FROM user
PostgreSQL会使用schema search path将user
等表名称解析为schema.tablename
等完全限定名称,默认设置为"$user",public
。
换句话说,除非您调整服务器配置,否则user
将解析为public.user
。
但是,您可以在语句中明确指定架构,如下所示:
SELECT id FROM otherschema.user