要在PostgreSQL中进行跨数据库查询,可以使用dblink
扩展或foreign data wrappers
。这些方法允许您在一个数据库中访问另一个数据库的数据。
-
使用dblink扩展:
- 安装
dblink
扩展:CREATE EXTENSION dblink;
- 使用
dblink
函数在不同数据库之间建立连接,并执行查询。例如:SELECT * FROM dblink('dbname=otherdb', 'SELECT * FROM table_name') AS data(column1 datatype, column2 datatype);
- 安装
-
使用外部数据包装器(Foreign Data Wrappers):
- 在PostgreSQL中,您可以使用外部数据包装器(Foreign Data Wrappers)来连接到不同的数据源,如另一个PostgreSQL数据库、MySQL、Oracle等。
- 首先,安装外部数据包装器,例如
postgres_fdw
。 - 创建外部服务器并用户映射:
CREATE SERVER foreign_server FOREIGN DATA WRAPPER postgres_fdw OPTIONS (host 'host_ip', dbname 'otherdb');
、CREATE USER MAPPING FOR current_user SERVER foreign_server OPTIONS (user 'db_user', password 'password');
- 创建外部表并执行查询:
CREATE FOREIGN TABLE foreign_table (column1 datatype, column2 datatype) SERVER foreign_server OPTIONS (table_name 'table_name');
、SELECT * FROM foreign_table;
这些是在PostgreSQL中进行跨数据库查询的两种方法。您可以根据您的需求和环境选择适合您的方法。