PostgreSQL 9.4.4 中文手册
上一页 | 上一级 |  | 下一页

# CREATE FOREIGN DATA WRAPPER

## 名称

CREATE FOREIGN DATA WRAPPER -- 定义一个外部数据封装器

## 大纲

    CREATE FOREIGN DATA WRAPPER name
        [ HANDLER handler_function | NO HANDLER ]
        [ VALIDATOR validator_function | NO VALIDATOR ]
        [ OPTIONS ( option 'value' [, ... ] ) ]

## 描述

`CREATE FOREIGN DATA WRAPPER`创建一个新的外部数据封装器。 创建外部数据封装器的用户成为其所有者。

外部数据封装器的名字必需在数据库中唯一。

只有超级用户可以创建外部数据封装器。

## 参数

`name`

  要创建的外部数据封装器的名字。

`HANDLER `handler_function``

  `handler_function` 是先前已经注册了的函数的名字，用来为外部表检索执行函数。 处理器函数必须没有参数，并且它的返回类型必须为`fdw_handler`。

  不用处理器函数创建外部数据封装器是可能的，但是使用这种封装器的外部表只能被声明，不能被访问。

`VALIDATOR `validator_function``

  `validator_function` 是先前已经注册了的函数的名字，用来检查提供给外部数据封装器的通用选项， 还有使用该外部数据封装器的外部服务器、用户映射和外部表的选项。 如果没有验证器函数或声明了`NO VALIDATOR`， 那么在创建时将不检查选项。（外部数据封装器可能在运行时忽略或拒绝无效的选项说明， 取决于实现。）验证器函数必须接受两个参数：一个类型为`text[]`， 将包含存储在系统目录中的选项的数组，一个类型为`oid`， 是包含这些选项的系统目录的OID。忽略返回类型；该函数应该使用 `ereport(ERROR)`函数报告无效选项。

`OPTIONS ( `option` '`value`' [, ... ] )`

  这个子句为新的外部数据封装器声明选项。允许的选项名和值是特定于每个外部数据封装器的， 并且是经过外部数据封装器的验证器函数验证了的。选项名必须是唯一的。

## 注意

PostgreSQL的外部数据功能一直在积极开发。 查询的优化是原始的（并且主要是封装器）。因此，未来的性能提升有很大的空间。

## 例子

创建一个无用的外部数据封装器`dummy`：

    CREATE FOREIGN DATA WRAPPER dummy;

创建一个带有处理器函数`file_fdw_handler` 的外部数据封装器`file`：

    CREATE FOREIGN DATA WRAPPER file HANDLER file_fdw_handler;

创建一个带有一些选项的外部数据封装器`mywrapper`：

    CREATE FOREIGN DATA WRAPPER mywrapper
        OPTIONS (debug 'true');

## 兼容性

`CREATE FOREIGN DATA WRAPPER`遵从ISO/IEC 9075-9 (SQL/MED)， 除了`HANDLER`和`VALIDATOR`子句是扩展， 并且标准的子句`LIBRARY`和`LANGUAGE` 没有在PostgreSQL中实现。

请注意，然而，SQL/MED功能作为一个整体目前是不符合的。

## 又见

ALTER FOREIGN DATA WRAPPER, DROP FOREIGN DATA WRAPPER, CREATE SERVER, CREATE USER MAPPING, CREATE FOREIGN TABLE

上一页 | 起始页 | 下一页
CREATE EXTENSION | 上一级 | CREATE FOREIGN TABLE