ALTER Extension
功能描述
修改插件扩展。
注意事项
ALTER Extension 修改一个已安装的扩展的定义。这里有几种方式:
- UPDATE
这种方式更新这个扩展到一个新的版本。这个扩展必须满足一个适用的更新脚本(或者一系列脚本)这样就能修改当前安装版本到一个要求的版本。 - SET SCHEMA
这种方式移动扩展对象到另一个模式。这个扩展必须relocatable才能使命令成功。 - ADD member_object
这种方式添加一个已存在对象到扩展。这主要在扩展更新脚本上有用。 这个对象接着会被视为扩展的成员;显而易见,该对象只能通过取消扩展来取消 。 - DROP member_object
这个方式从扩展上移除一个成员对象。 主要在扩展更新脚本上有用。这个对象没有被取消,只是从扩展里分开了。
您必须拥有扩展来使用 ALTER Extension。 这个 ADD/DROP 方式要求添加/删除对象的所有权。
语法格式
1. ALTER Extension name UPDATE [ TO new_version ];
2. ALTER Extension name SET SCHEMA new_schema;
3. ALTER Extension name ADD member_object;
4. ALTER Extension name DROP member_object;
6. where member_object is:
8. AGGREGATE agg_name (agg_type [, ...] ) |
9. CAST (source_type AS target_type) |
10. COLLATION object_name |
11. CONVERSION object_name |
12. DOMAIN object_name |
13. FOREIGN DATA WRAPPER object_name |
14. FOREIGN TABLE object_name |
15. FUNCTION function_name ( [ [ argname ] [ argmode ] argtype [, ...] ] ) |
16. MATERIALIZED VIEW object_name |
17. OPERATOR operator_name (left_type, right_type) |
18. OPERATOR CLASS object_name USING index_method |
19. OPERATOR FAMILY object_name USING index_method |
20. [ PROCEDURAL ] LANGUAGE object_name |
21. SCHEMA object_name |
22. SEQUENCE object_name |
23. SERVER object_name |
24. TABLE object_name |
25. TEXT SEARCH CONFIGURATION object_name |
26. TEXT SEARCH DICTIONARY object_name |
27. TEXT SEARCH PARSER object_name |
28. TEXT SEARCH TEMPLATE object_name |
29. TYPE object_name |
30. VIEW object_name
参数说明
- 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 。
示例
更新 hstore 扩展到版本 2.0:
1. ALTER Extension hstore UPDATE TO '2.0';
更新 hstore扩展的模式为utils:
1. ALTER Extension hstore SET SCHEMA utils;
添加一个已存在的函数给 hstore 扩展:
1. ALTER Extension hstore ADD FUNCTION populate_record(anyelement, hstore);
