通过postgres_fdw实现跨库访问
以下是使用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
等占位符以适应你的具体环境配置。
评论已关闭