如何在PostgreSQL中使用dblink时包含schema inf?

时间:2013-01-03 18:52:44

标签: postgresql database-schema

所有

我试图在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文档中找到它。

1 个答案:

答案 0 :(得分:1)

编写

之类的SQL查询时
SELECT id FROM user

PostgreSQL会使用schema search pathuser等表名称解析为schema.tablename等完全限定名称,默认设置为"$user",public

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

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

SELECT id FROM otherschema.user