foreign table可以实现对外部数据库的访问,使用foreign table需要引入FDW依赖,FDW是一种外部访问接口,可访问存储在外部的pg数据库、oracle、mysql等数据库,甚至包括文件。针对不同类型的数据库和数据类型,都有专门的fdw插件可供选择,如oracle_fdw用于访问oracle库,mysql_fdw用于访问mysql库等。这些插件可以直接安装或下载安装,从而让用户在PostgreSQL中能够使用SQL查询来访问和利用丰富的外部数据资源。
1.在本地数据库中安装 postgres_fdw 扩展
CREATE EXTENSION IF NOT EXISTS postgres_fdw;
2.定义远程 PostgreSQL 服务器的连接信息
CREATE SERVER remote_server
FOREIGN DATA WRAPPER postgres_fdw
OPTIONS (
host '127.0.0.1',
port '5432',
dbname 'test'
);
3.创建用户映射
CREATE USER MAPPING FOR admin
SERVER remote_server
OPTIONS (
user 'admin',
password '123456'
);
4.创建外部表
CREATE FOREIGN TABLE user_info (
列1 数据类型,
列2 数据类型,
...
)
SERVER remote_server
OPTIONS (
schema_name 'test_schema',
table_name 'user_info'
);