CREATE FOREIGN DATA WRAPPER name [ VALIDATOR valfunction | NO VALIDATOR ] [ OPTIONS ( option 'value' [, ... ] ) ]
CREATE FOREIGN DATA WRAPPER创建一个新的外部数据封装器。 外部数据封装器的创建者会成为器所有者。
外部数据封装器名称必须在数据库内是唯一的。
只有超级用户可以创建外部数据封装器。
要创建的外部数据封装器的名称。
valfunction是
先前已注册函数的名称,该函数是被调用来检查给外部数据封装器的通用选项,
同外部服务器和使用外部数据封装器的用户映射一样。若无验证器函数或者
NO VALIDATOR声明,那么选项将不会在创建时被检查。
(外部数据封装器将会在运行时忽略或者拒绝无效的选项规范,基于实现。)
验证器函数必须带两个参数:一个是text[]类型,它包含一系列
存储在系统表中的选型,而另一个是oid类型,它将是包含该种
选项的系统表的OID。返回类型江北忽略;这个函数应该表明使用
ereport()
函数的无效选项。
该子句为新外部数据封装器指定选项。允许的选型名称和数值对每个外部 数据封装器是特定的并且验证为使用外部数据封装器库。选项名称必须是 独一无二的。
当前,外部数据封装功能非常基本。外部数据封装、外部服务器和用户映射 是用来以标准方式存储这些信息的。因此,它可以通过感兴趣的应用程序来 查询。一个这样的应用程序是dblink; 参阅Section F.8。通过外部数据封装库实际查询外部数据的 功能还不存在。
目前有一个外部数据封装验证器函数,它提供了: postgresql_fdw_validator,它接受与 libpq连接参数相一致的选项。
Create a foreign-data wrapper dummy:
CREATE FOREIGN DATA WRAPPER dummy;
通过验证器函数postgresql_fdw_validator, 创建一个外部数据封装postgresql:
CREATE FOREIGN DATA WRAPPER postgresql VALIDATOR postgresql_fdw_validator;
同过以下选项创建一个外部数据封装包mywrapper:
CREATE FOREIGN DATA WRAPPER mywrapper OPTIONS (debug 'true');
CREATE FOREIGN DATA WRAPPER conforms to ISO/IEC 9075-9 (SQL/MED), with the exception that the VALIDATOR clause is an extension and the clauses LIBRARY and LANGUAGE are not yet implemented in PostgreSQL. CREATE FOREIGN DATA WRAPPER符合于ISO/IEC 9075-9 (SQL/MED),除了VALIDATOR子句是一个扩展而且 子句LIBRARY和LANGUAGE目前还没有在 PostgreSQL中实现。
Note, however, that the SQL/MED functionality as a whole is not yet conforming. 注意:然而,SQL/MED功能总体上说尚不符合标准。