pgsql如何不使用dblink跨库

有人知道pgsql如何不使用dblink或者postgres_fdw去查询同一个连接下的另一张表的数据吗,我看了一下,这两个好像都需要输出地址,但是测试的库和正式的库是不一样的

该回答引用GPTᴼᴾᴱᴺᴬᴵ
在PostgreSQL中,可以使用CREATE FOREIGN TABLE语句来定义一个外部表,将其链接到另一个数据库中的表。这个外部表会被视为一个本地表,可以直接对其进行查询操作。

下面是一个示例,将一个名为"mytable"的远程表链接到本地数据库中:

1.首先,需要在本地数据库中创建一个外部服务器。假设远程数据库名为"remotedb",它的主机名为"remotehost",并且端口为"5432",可以使用以下命令创建外部服务器:

CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'remotehost', port '5432', dbname 'remotedb');


2.接下来,可以使用以下命令在本地数据库中创建一个外部表:

CREATE FOREIGN TABLE mytable (
    id integer,
    name text
)
SERVER remote_server
OPTIONS (schema_name 'public', table_name 'mytable');


这个外部表名为"mytable",它对应着远程数据库中的"mytable"表。在查询时,可以像操作本地表一样操作它。

需要注意的是,使用外部表需要确保本地数据库和远程数据库之间的网络连接是正常的,并且远程数据库中的表结构和数据类型必须与本地数据库中的表结构和数据类型相匹配。

小魔女参考了bing和GPT部分内容调写:
PostgreSQL支持在同一个连接中访问不同数据库中的表,不需要使用dblink或者postgres_fdw。你可以使用下面的语句实现:

SELECT * FROM 数据库1.表1, 数据库2.表2 WHERE 条件;

如果想要查询两个不同数据库中的相同表,也可以使用下面的方法:

SELECT * FROM 数据库1.1 AS t1, 数据库2.1 AS t2 WHERE 条件;

这样就可以在同一个连接中跨数据库访问表了。
回答不易,记得采纳呀。