PostgreSQL 外部表

作者 bluse wang 日期 2019-09-07
PostgreSQL 外部表

是时候用一下PG外部表了。这些年过去,这功能应该是稳定了的。

开启

首先确定contrib是否有安装。如果没有要先安装:

1
pkg install postgresql10-contrib

然后开启扩展

1
CREATE EXTENSION postgres_fdw;

创建远程服务

1
2
3
CREATE SERVER server156
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (host '192.168.1.156',dbname 'bossdb',port '5432');

这里有个坑,就是如果192.168.1.156连不上的情况下上面语句也会执行成功.其实真正的连接到远程服务器是要等到后面dml执行时才会连接

创建用户映射

1
2
3
CREATE USER MAPPING FOR postgres
SERVER server156
OPTIONS (user 'postgres',password '000000');

这里如果输错了也不会知道。
且这一步PGAdmin4中没有可显示的结果

创建远程表

1
2
3
4
5
6
7
8
CREATE FOREIGN TABLE if NOT EXISTS qbit_test (
id INTEGER ,
name CHARACTER VARYING(50),
class CHARACTER VARYING(50),
time CHARACTER VARYING(50)
)
SERVER server156
OPTIONS (schema_name 'public',table_name 'qbit_test');