POSTGRES_FDW 使用说明

安装

openGauss 数据库默认情况下已经提供了 postgres_fdw 扩展,postgreSQL 数据库默认不提供扩展,可以通过位于源码的 contrib/postgres_fdw 目录进行编译安装。Yukon 的安装包中也直接提供了这个扩展。

使用

  1. 创建 postgres_fdw 扩展

    CREATE EXTENSION postgres_fdw;
    
  2. 创建外部服务器

    CREATE SERVER foreign_server
            FOREIGN DATA WRAPPER postgres_fdw
            OPTIONS (host '192.83.123.89', port '5432', dbname 'foreign_db');
    
  3. 创建用户映射

    CREATE USER MAPPING FOR local_user
            SERVER foreign_server
            OPTIONS (user 'foreign_user', password 'password');
    
  4. 创建外部表

    CREATE FOREIGN TABLE foreign_table (
            id integer NOT NULL,
            data text
    )
            SERVER foreign_server
            OPTIONS (schema_name 'some_schema', table_name 'some_table');
    

    CREATE FOREIGN TABLE 中声明的列数据类型和其他性质必须要匹配实际的远程表。列名也必须匹配,不过也可以为个别列附上column_name选项以表示它们在远程服务器上对应哪个列。在很多情况中,要手工构造外部表定义,使用 IMPORT FOREIGN SCHEMA 会更好。