PostgreSQL数据外部表使用(postgres_fdw)

FDW简介

FDW(Foreign Data Wrapper)是postgresql的一个插件。通过FDW,可以将远程pg数据库映射到本地(映射为server),将远程数据库table映射为本地的foreign table。通过FDW映射的foreign table,实际数据只存在于远端数据库,本地并不实际存储实际的数据库。读写foreign table会映射为读写远程数据库对应的table。最初本地只支持foreign table只读操作,从PG9.3版本开始,支持本地写入foreign table。


完整操作SQL

--安装扩展
create extension  IF NOT EXISTS postgres_fdw;
--验证扩展
select * from pg_available_extensions where name='postgres_fdw';

--创建 server
create server server_remote_pg2pg foreign data wrapper postgres_fdw options(host '192.168.1.11',port '5432',dbname 'my');

--创建用户映射
create user mapping for postgres server server_remote_pg2pg options(user 'postgres', password '1234');

--验证
select * from pg_foreign_server;

--创建外部表
create foreign table tb_fdw_foreign(shi varchar,geom geometry(MULTIPOLYGON, 4490)) server server_remote_pg2pg options(schema_name 'dataimporttest',table_name 'shi');
create foreign table tb_fdw_foreign(SHI VARCHAR,geom GEOMETRY(MULTIPOLYGON, 4490)) server server_remote_pg2pg options(schema_name 'dataimporttest',table_name 'SHI');
select * from tb_fdw_foreign;

--操作外部表
INSERT into tb_fdw_foreign(shi,geom) SELECT shi,geom from jxlcs_yw.yjjc_pdtb;
INSERT into tb_fdw_foreign(SHI,geom) SELECT SHI,geom from jxlcs_yw.yjjc_hstb_py;

--删除外部表
drop foreign table tb_fdw_foreign;

--删除用户映射
drop user mapping for postgres server server_remote_pg2pg;

--删除 server
drop server server_remote_pg2pg;

--删除扩展
drop extension postgres_fdw;

Reference

PostgreSql postgres_fdw

postgres FDW学习

postgresql 利用fdw来实现不同数据库之间数据互通(推荐)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值