PGSQL 创建外部数据源
1、创建外部数据包装器
CREATE FUNCTION postgres_fdw_handler()
RETURNS fdw_handler
AS 'postgres_fdw' LANGUAGE C STRICT;
CREATE FUNCTION postgres_fdw_validator(text[],oid)
RETURNS void
AS 'postgres_fdw' LANGUAGE C STRICT;
CREATE FOREIGN DATA WRAPPER postgres_fdw
HANDLER file_fdw_handler
VALIDATOR file_fdw_validator;
2、创建外部服务对象 host、dbname、port 根据实际需要修改
CREATE SERVER area_fdw_server FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host 'ip', dbname 'databasename', port 'port');
3、用户映射对象 user、password 根据实际需要修改
CREATE USER MAPPING FOR CURRENT_USER
SERVER area_fdw_server
OPTIONS (user 'username', password 'password');
4、创建外部表对象 table_name 需要查询的外部数据源的表
CREATE FOREIGN TABLE ft_areas (
id uuid NOT NULL,
"version" int8 NULL,
available bool NOT NULL,
created_by uuid NULL,
created_by_name varchar(128) NULL,
created_date timestamp(6) NULL,
last_modified_by uuid NULL,
last_modified_by_name varchar(128) NULL,
last_modified_date timestamp(6) NULL,
description varchar(2048) NULL,
nick_name varchar(128) NULL,
owner_departs _uuid NULL,
owner_user uuid NULL,
code varchar(128) NULL,
"enable" bool NULL,
is_custom_code bool NULL,
name_for_short varchar(128) NULL,
sort int4 NULL,
parent_id uuid NULL
) SERVER area_fdw_server
OPTIONS (table_name 'table_name');
table_name : 需要查询的外部数据源中的表名。
5、使用
这里使用表和使用本库中的表一模一样。
select * from ft_areas;