ALTER FOREIGN DATA WRAPPER — 更改一个外部数据封装器的定义
ALTER FOREIGN DATA WRAPPERname[ HANDLERhandler_function| NO HANDLER ] [ VALIDATORvalidator_function| NO VALIDATOR ] [ OPTIONS ( [ ADD | SET | DROP ]option['value'] [, ... ]) ] ALTER FOREIGN DATA WRAPPERnameOWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER FOREIGN DATA WRAPPERnameRENAME TOnew_name
ALTER FOREIGN DATA WRAPPER 更改一个外部数据封装器的定义。该命令的第一种形式更改外部数据封装器的支持函数或通用选项(至少需要一个子句)。第二种形式更改外部数据封装器的拥有者。
只有超级用户才能更改外部数据封装器。此外,只有超级用户才能拥有外部数据封装器。
name一个现有外部数据封装器的名称。
HANDLER handler_function为该外部数据封装器指定一个新的处理函数。
NO HANDLER这用于指定该外部数据封装器不再拥有处理函数。
注意,使用没有处理函数的外部数据封装器的外部表将无法被访问。
VALIDATOR validator_function为该外部数据封装器指定一个新的验证器函数。
注意,外部数据封装器预先存在的选项,或者依赖的服务器、用户映射或外部表的预先存在的选项,有可能根据新的验证器是无效的。PostgreSQL 不会对此进行检查。在使用修改后的外部数据封装器之前,确保这些选项正确是用户自己的责任。不过,在这个 ALTER FOREIGN DATA WRAPPER 命令中指定的任何选项都会使用新的验证器进行检查。
NO VALIDATOR这用于指定该外部数据封装器不再拥有验证器函数。
OPTIONS ( [ ADD | SET | DROP ] option ['value'] [, ... ] ) 更改外部数据封装器的选项。ADD、SET 和 DROP 指定要执行的动作。如果没有显式指定操作,则假定是 ADD。选项名称必须唯一;如果外部数据封装器有验证器函数,名称和值也会使用它进行验证。
new_owner外部数据封装器的新拥有者的用户名。
new_name外部数据封装器的新名称。
更改外部数据封装器 dbi,添加选项 foo,删除 bar:
ALTER FOREIGN DATA WRAPPER dbi OPTIONS (ADD foo '1', DROP bar);
把外部数据封装器 dbi 的验证器更改为 bob.myvalidator:
ALTER FOREIGN DATA WRAPPER dbi VALIDATOR bob.myvalidator;
ALTER FOREIGN DATA WRAPPER 符合 ISO/IEC 9075-9(SQL/MED),但 HANDLER、VALIDATOR、OWNER TO 和 RENAME 子句是扩展。