pg_foreign_table 是 PostgreSQL 系统目录表之一,用于存储外部表的信息。外部表是通过外部数据封装器(Foreign Data Wrapper,FDW)在 PostgreSQL 中创建的表,实际上是对外部数据源的引用。

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

  •  ftrelid: 外部表的 OID(对象标识符)。

  •  ftserver: 外部表关联的外部服务器的 OID。

  •  ftoptions: 与外部表关联的选项的数组,包含了访问外部数据源所需的配置信息。


外部表允许在 PostgreSQL 中查询和操作外部数据源的数据,而无需将数据复制到本地数据库。外部表的定义通常包括表的列和类型信息,以及指定与外部服务器通信所需的选项。

要查看当前数据库中已创建的外部表,可以执行如下查询:
SELECT * FROM pg_foreign_table;

创建外部表的一般步骤如下:

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/8840/PostgreSQL