通过postgres_fdw实现跨库访问
warning:
这篇文章距离上次修改已过425天,其中的内容可能已经有所变动。
以下是使用postgres_fdw实现跨数据库查询的基本步骤和示例代码:
- 确保
postgres_fdw扩展已经安装在数据库中。如果没有安装,你可以用以下SQL命令安装它:
CREATE EXTENSION postgres_fdw;- 创建服务器对象,指向要访问的远程数据库:
CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'remote_host', port '5432', dbname 'remote_database');- 创建用户映射,指定本地数据库用户到远程数据库用户的映射:
CREATE USER MAPPING FOR local_user
SERVER remote_server
OPTIONS (user 'remote_user', password 'remote_password');- 创建外部表,映射远程数据库中的表:
CREATE FOREIGN TABLE foreign_table (
column1 data_type,
column2 data_type,
...
) SERVER remote_server
OPTIONS (query 'SELECT column1, column2, ... FROM remote_table');或者直接创建映射远程表的外部表:
CREATE FOREIGN TABLE foreign_table (
LIKE remote_table INCLUDING ALL
) SERVER remote_server
OPTIONS (schema_name 'public', table_name 'remote_table');- 现在你可以像查询本地表一样查询外部表,跨数据库查询的结果将从远程数据库获取:
SELECT * FROM foreign_table WHERE condition;请注意,你需要替换remote_host, remote_database, remote_server, local_user, remote_user, remote_password, foreign_table, remote_table等占位符以适应你的具体环境配置。
评论已关闭