选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.0 已于 2015 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

CREATE FOREIGN DATA WRAPPER

CREATE FOREIGN DATA WRAPPER — define a new foreign-data wrapper

大纲

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

描述

CREATE FOREIGN DATA WRAPPER创建一个新的外部数据包装器。 定义该外部数据包装器的用户将成为它的拥有者。

外部数据包装器名称在数据库内必须唯一。

只有超级用户能够创建外部数据包装器。

参数

name

要创建的外部数据包装器的名称。

VALIDATOR valfunction

validator_function 是一个预先注册的函数的名称,该函数将被调用以检查提供给该外部数据 包装器的通用选项,以及用于外部服务器、用户映射和使用该外部数据包装器 的外部表的选项。如果未指定验证器函数或者指定了 NO VALIDATOR,则在创建时不会检查这些选项。 (外部数据包装器可能会在运行时忽略无效的选项声明,或者拒绝它们, 这取决于其实现。)验证器函数必须接受两个参数:一个参数的类型为 text[],其中包含系统目录中存储的选项数组;另一个参数的 类型为oid,其值是包含这些选项的系统目录 的 OID。返回类型会被忽略;该函数应当使用 ereport(ERROR)报告无效选项。

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

这个子句为新的外部数据包装器指定选项。允许的选项名和值是各个外部数据包装器特有的,并使用外部数据包装器库进行验证。选项名必须唯一。

注解

目前,外部数据包装器功能还非常初级。外部数据包装器、外部服务器和用户映射的目的是以一种标准的方式存储这些信息,以便感兴趣的应用可以查询它们。这样的一个应用是dblink,见第 F.8 节。通过外部数据包装器库实际查询外部数据的功能尚不存在。

提供了一个内建的外部数据包装器验证器函数:postgresql_fdw_validator,它接受与 libpq 连接参数对应的选项。

示例

创建一个无用的外部数据包装器dummy

CREATE FOREIGN DATA WRAPPER dummy;

Create a foreign-data wrapper postgresql with validator function postgresql_fdw_validator:

CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;

用一些选项创建一个外部数据包装器mywrapper

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

兼容性

CREATE FOREIGN DATA WRAPPER符合 ISO/IEC 9075-9(SQL/MED),但VALIDATOR子句是一个扩展,而LIBRARYLANGUAGE子句在 PostgreSQL 中尚未实现。

不过需要注意,SQL/MED 功能整体上尚未完全符合该标准。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。