pg_foreign_server 是 PostgreSQL 系统目录表之一,用于存储外部服务器的信息。在 PostgreSQL 中,外部服务器是外部数据源的表示,通过外部数据封装器(Foreign Data Wrapper,FDW)实现。外部服务器用于与外部数据源通信,并在数据库中创建外部表以引用这些外部数据。

以下是 pg_foreign_server 表的一些关键列:

  •  oid: 外部服务器的唯一标识符(对象标识符)。

  •  srvname: 外部服务器的名称。

  •  srvowner: 外部服务器的所有者(用户的 OID)。

  •  srvfdw: 与外部服务器关联的外部数据封装器的 OID。

  •  srvtype: 外部服务器的类型。

  •  srvversion: 外部服务器的版本信息。

  •  srvacl: 外部服务器的访问控制列表(ACL)。


外部服务器用于在 PostgreSQL 中定义与外部数据源的连接,以便进行查询和访问。通常,创建外部服务器的过程是与创建外部数据封装器、用户映射和外部表一起完成的。

以下是创建外部服务器的基本步骤:

1. 创建外部数据封装器:使用 CREATE FOREIGN DATA WRAPPER 语句创建外部数据封装器。
   CREATE FOREIGN DATA WRAPPER your_fdw_name HANDLER your_handler_function;

   这里,“your_fdw_name” 是你为封装器指定的名称,“your_handler_function” 是处理程序函数的名称。

2. 创建外部服务器:使用 CREATE SERVER 语句创建与外部数据源通信的服务器。
   CREATE SERVER your_server_name FOREIGN DATA WRAPPER your_fdw_name OPTIONS (option 'value');

   这里,“your_server_name” 是你为服务器指定的名称,“your_fdw_name” 是外部数据封装器的名称,OPTIONS 子句用于指定连接外部数据源所需的选项。

3. 创建用户映射:使用 CREATE USER MAPPING 语句将数据库用户映射到外部服务器上的用户。
   CREATE USER MAPPING FOR your_user SERVER your_server_name OPTIONS (option 'value');

   这里,“your_user” 是数据库用户的名称,OPTIONS 子句用于指定映射所需的选项。

4. 创建外部表:使用 CREATE FOREIGN TABLE 语句在 PostgreSQL 中创建外部表,该表是对外部数据源的引用。
   CREATE FOREIGN TABLE your_external_table_name (column1 data_type, column2 data_type, ...) SERVER your_server_name OPTIONS (option 'value');

   这里,“your_external_table_name” 是外部表的名称,data_type 是列的数据类型,OPTIONS 子句用于指定访问外部数据源所需的选项。

通过这些步骤,你可以在 PostgreSQL 中创建外部服务器,并通过外部表访问和查询外部数据源。


转载请注明出处:http://www.zyzy.cn/article/detail/8839/PostgreSQL