1

全部

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

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 文档中弄清楚。

4

1 回答 1

1

当您编写 SQL 查询时

SELECT id FROM user

PostgreSQL 会将表名解析user为完全限定名,例如schema.tablename使用模式搜索路径,默认设置为"$user",public.

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

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

SELECT id FROM otherschema.user
于 2013-01-04T07:58:30.977 回答