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 aggregate_name ( aggregate_signature ) | 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 and aggregate_signature is: * | [ argmode ] [ argname ] argtype [ , ... ] | [ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]
ALTER EXTENSION 修改一个已安装的扩展的定义。这里有几种方式:
这种方式更新这个扩展到一个新的版本。这个扩展必须满足一个适用的更新脚本(或者一系列脚本) 这样就能修改当前安装版本到一个要求的版本。
这种方式移动扩展对象到另一个模式。这个扩展必须relocatable 才能使命令成功。
这种方式添加一个已存在对象到扩展。这主要在扩展更新脚本上有用。 这个对象接着会被视为扩展的成员;显而易见,该对象只能通过取消扩展来取消。
这个方式从扩展上移除一个成员对象。主要在扩展更新脚本上有用。 这个对象没有被取消, 只是从扩展里分开了。
参考第 35.15 节 来获取更多有关这些操作的信息。
要使用 ALTER EXTENSION,你必须拥有该扩展。 ADD/DROP方式也要求添加/删除对象的所有权。
已安装扩展的名称。
希望的扩展的新版本。这个能被标识符或字面字符重写。如果不是指定的, ALTER EXTENSION UPDATE尝试更新到在扩展的控制文件中显示的默认版本。
扩展的新模式。
要添加到扩展里或从扩展中删除的对象的名字。表、聚合、域、外部表、函数、 操作符、操作符类、操作符族、序列、文本搜索对象、类型和可以被模式限定的视图的名字。
强制转换的源数据类型的名称。
强制转换的目标数据类型的名称。
函数或聚合参数的模式:IN、OUT、 INOUT或者VARIADIC。 如果省略的话,默认的是 IN。 请注意,ALTER EXTENSION不关心OUT参数, 因为确认函数的身份只需要输入参数。因此列出IN、 INOUT和VARIADIC参数就足够了。
函数或聚合参数的名称。请注意,ALTER EXTENSION 不关心参数名称,因为确认函数的身份只需要参数数据类型。
函数或聚合参数的数据类型。
操作符的参数的数据类型(可以有模式修饰)。 为前缀或后缀运算符的丢失参数写NONE。
这是一个干扰词。