使用 postgres_fdw 关联外部数据库的表
postgres_fdw 的安装和使用
- 使用 psql 命令安装扩展 postgres_fdw
CREATE EXTENSION postgres_fdw;
- 然后使用
CREATE SERVER
创建一个外部服务器,取名为 foreign_server,连接远程 foreign_db 数据库。
CREATE SERVER foreign_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'sxy21.com', port '5432', dbname 'foreign_db');
- 使用 CREATE USER MAPPING 定义一个本地数据库用户 postgres 与远程数据库用户 foreign_user 的映射。
CREATE USER MAPPING FOR local_user
SERVER foreign_server
OPTIONS (user 'foreign_user', password 'password');
- 使用 IMPORT FOREIGN SCHEMA 导入远程数据库 public 模式下的 users 表到本地数据库的 public 模式下。
IMPORT FOREIGN SCHEMA public LIMIT TO (users)
FROM SERVER foreign_server INTO public;
- 测试
# 查看外部的表
# List of foreign tables
\det+
# 查询
select count(*) from users;
参考文档