ALTER EXTENSION
Name
ALTER EXTENSION -- 修改扩展定义
Synopsis
ALTER EXTENSION _name_ UPDATE [ TO _new_version_ ]
ALTER EXTENSION _name_ SET SCHEMA _new_schema_
ALTER EXTENSION _name_ ADD _member_object_
ALTER EXTENSION _name_ DROP _member_object_
where `_member_object_` is:
AGGREGATE _agg_name_ (_agg_type_ [, ...] ) |
CAST (_source_type_ AS _target_type_) |
COLLATION _object_name_ |
CONVERSION _object_name_ |
DOMAIN _object_name_ |
EVENT TRIGGER _object_name_ |
FOREIGN DATA WRAPPER _object_name_ |
FOREIGN TABLE _object_name_ |
FUNCTION _function_name_ ( [ [ _argmode_ ] [ _argname_ ] _argtype_ [, ...] ] ) |
MATERIALIZED VIEW _object_name_ |
OPERATOR _operator_name_ (_left_type_, _right_type_) |
OPERATOR CLASS _object_name_ USING _index_method_ |
OPERATOR FAMILY _object_name_ USING _index_method_ |
[ PROCEDURAL ] LANGUAGE _object_name_ |
SCHEMA _object_name_ |
SEQUENCE _object_name_ |
SERVER _object_name_ |
TABLE _object_name_ |
TEXT SEARCH CONFIGURATION _object_name_ |
TEXT SEARCH DICTIONARY _object_name_ |
TEXT SEARCH PARSER _object_name_ |
TEXT SEARCH TEMPLATE _object_name_ |
TYPE _object_name_ |
VIEW _object_name_
描述
ALTER EXTENSION
修改一个已安装的扩展的定义. 这里有几种方式:
UPDATE
这种方式更新这个扩展到一个新的版本. 这个扩展必须满足一个适用的更新脚本(或者一系列脚本) 这样就能修改当前安装版本到一个要求的版本.
SET SCHEMA
这种方式移动扩展对象到另一个模式. 这个扩展必须relocatable才能使命令成功.
ADD
_member_object_
这种方式添加一个已存在对象到扩展. 这主要在扩展更新脚本上有用. 这个对象接着会被视为扩展的成员; 显而易见,该对象只能通过取消扩展来取消 .
DROP
_member_object_
这个方式从扩展上移除一个成员对象. 主要在扩展更新脚本上有用 .这个对象没有被取消, 只是从扩展里分开了.
参考Section 35.15 来获取更多有关这些操作的信息.
你必须拥有扩展来使用 ALTER EXTENSION
. 这个 ADD
/DROP
方式要求 添加/删除对象的所有权.
参数
_name_
已安装扩展的名称.
_new_version_
希望的扩展新版本. 这个能被标识符和字面字符重写.如果不是指定的, ALTER EXTENSION UPDATE
尝试去更新到不管是什么在扩展的控制文件中显示的默认版本.
_new_schema_
给扩展的新模式.
_object_name_``_agg_name_
_function_name_
_operator_name_
从扩展里被被添加或移除的对象的名称.表, 聚集 , 域, 外链表,函数,操作符, 操作符类, 操作符族,序列, 文本搜索对象,类型, 和能被模式合格的视图的名称.
_agg_type_
在聚集函数操作上的一个输入数据类型. 去引用一个零参数聚集函数,写 *
代替这些输入数据类型列表.
_source_type_
强制转换的源数据类型的名称.
_target_type_
强制转换的目标数据类型的名称.
_argmode_
这个函数参数的模型: IN
, OUT
, INOUT
, 或者 VARIADIC
. 如果省略的话, 默认的是 IN
. 注意 ALTER EXTENSION
不关心OUT
参数 , 因为确认函数的一致性只需要输入参数.因此列出 IN
, INOUT
, 和 VARIADIC
参数就足够了.
_argname_
函数参数的名称. 注意ALTER EXTENSION
不关心参数名称, 因为确认函数的一致性只需要参数数据类型.
_argtype_
函数参数的数据类型(可以有模式修饰), 如果任何.
_left_type_
_right_type_
操作符的参数的数据类型(可以有模式修饰). 为前缀或后缀运算符的丢失参数写NONE
.
PROCEDURAL
这是一个干扰词.
示例
更新 hstore
扩展到版本 2.0:
ALTER EXTENSION hstore UPDATE TO '2.0';
更新 hstore
扩展的模式为utils
:
ALTER EXTENSION hstore SET SCHEMA utils;
添加一个已存在的函数给 hstore
扩展:
ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);
兼容性
ALTER EXTENSION
是一个 PostgreSQL扩展.