ALTER EXTENSION

From PostgreSQL wiki

(Difference between revisions)
Jump to: navigation, search
(示例)
(参数)
Line 58: Line 58:
  
 
;extension_name
 
;extension_name
:The name of an installed extension.
+
:已装扩展的名字。
  
 
;new_version
 
;new_version
:The desired new version of the extension. This can be written as either an identifier or a string literal. If not specified, ALTER EXTENSION UPDATE attempts to update to whatever is shown as the default version in the extension's control file.
+
:扩展希望升至的新版本。这个参数可以是一个标示符也可以是字符串字面量。如果没有指定这个参数,ALTER EXTENSION UPDATE 将扩展升级至扩展控制文件中指定的缺省版本。
  
 
;new_schema
 
;new_schema
:The new schema for the extension.
+
:扩展的新模式。
  
 
;object_name
 
;object_name
Line 70: Line 70:
 
;function_name
 
;function_name
 
;operator_name
 
;operator_name
:The name of an object to be added to or removed from the extension. Names of tables, aggregates, domains, foreign tables, functions, operators, operator classes, operator families, sequences, text search objects, types, and views can be schema-qualified.
+
:扩展将要添加或移除的对象的名字。表,聚集函数,域,外部表,函数,操作符,操作符类,操作符族,序列,文本检索对象,类型,视图等对象的名字,可以用模式修饰。
  
 
;agg_type
 
;agg_type
:An input data type on which the aggregate function operates. To reference a zero-argument aggregate function, write * in place of the list of input data types.
+
:聚集函数操作的输入数据的数据类型。要表示某个0个参数的聚集函数,在输入类型列表中添 *
  
 
;source_type
 
;source_type
:The name of the source data type of the cast.
+
:强制类型转换的源数据类型。
  
 
;target_type
 
;target_type
:The name of the target data type of the cast.
+
:强制类型转换的目标数据类型。
  
 
;argmode
 
;argmode
:The mode of a function argument: IN, OUT, INOUT, or VARIADIC. If omitted, the default is IN. Note that ALTER EXTENSION does not actually pay any attention to OUT arguments, since only the input arguments are needed to determine the function's identity. So it is sufficient to list the IN, INOUT, and VARIADIC arguments.
+
:函数参数的模式:IN,OUT,INOUT,VARIADIC。如果不指定该参数,默认为IN。注意,ALTER EXTENSION实际上不会处理OUT模式的参数,因为只有输入参数才会作为函数签名的一部分来标识函数实体。因此,列出IN,INOUT,VARIDIC模式就足够了。
  
 
;argname
 
;argname
:The name of a function argument. Note that ALTER EXTENSION does not actually pay any attention to argument names, since only the argument data types are needed to determine the function's identity.
+
:函数参数的名字。注意,ALTER EXTENSION实际上不会处理参数名字,因为只有参数的数据类型才会作为函数的签名的一部分来标识函数实体。
  
 
;argtype
 
;argtype
:The data type(s) of the function's arguments (optionally schema-qualified), if any.
+
:函数参数的数据类型,如果有模式的话可以使用模式进行修饰。
  
 
;left_type
 
;left_type
 
;right_type
 
;right_type
:The data type(s) of the operator's arguments (optionally schema-qualified). Write NONE for the missing argument of a prefix or postfix operator.
+
:操作符的数据类型,可以使用模式进行修饰。前缀或后缀操作符对应(左和右)的缺少部分应该添NONE。
  
 
;PROCEDURAL
 
;PROCEDURAL
:This is a noise word.
+
:这个参数没必要存在。
  
 
=====示例=====
 
=====示例=====

Revision as of 15:03, 13 June 2013

Contents

名字

ALTER EXTENSION -- 修改一个扩展的定义

语法概要
   ALTER EXTENSION extension_name UPDATE [ TO new_version ]
   ALTER EXTENSION extension_name SET SCHEMA new_schema
   ALTER EXTENSION extension_name ADD member_object
   ALTER EXTENSION 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 |
     FOREIGN DATA WRAPPER object_name |
     FOREIGN TABLE object_name |
     FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
     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
这个形式将扩展的对象移动到另一个模式中去。要成功执行这个命令,扩展需是可重定位的。
ADD member_object
这个形式将一个已有对象添加进扩展。该形式在扩展升级脚本中非常有用。添加之后对象被作为扩展的一个成员;值得注意的是,要丢弃这个对象的话,只能丢弃整个扩展。This form adds an existing object to the extension. This is mainly useful in extension update scripts. The object will subsequently be treated as a member of the extension; notably, it can only be dropped by dropping the extension.
DROP member_object
这个形式将成员对象从扩展中移除。该形式在扩展升级脚本中非常有用。该对象并没有被丢弃,只是从扩展中移除出去。

关于这些操作的更多信息可以参见35.15节。

你必须具有扩展的所有权才能执行ALTER EXTENSION命令。ADD/DROP命令需要被添加或移除对象的所有权。

参数
extension_name
已装扩展的名字。
new_version
扩展希望升至的新版本。这个参数可以是一个标示符也可以是字符串字面量。如果没有指定这个参数,ALTER EXTENSION UPDATE 将扩展升级至扩展控制文件中指定的缺省版本。
new_schema
扩展的新模式。
object_name
agg_name
function_name
operator_name
扩展将要添加或移除的对象的名字。表,聚集函数,域,外部表,函数,操作符,操作符类,操作符族,序列,文本检索对象,类型,视图等对象的名字,可以用模式修饰。
agg_type
聚集函数操作的输入数据的数据类型。要表示某个0个参数的聚集函数,在输入类型列表中添 * 。
source_type
强制类型转换的源数据类型。
target_type
强制类型转换的目标数据类型。
argmode
函数参数的模式:IN,OUT,INOUT,VARIADIC。如果不指定该参数,默认为IN。注意,ALTER EXTENSION实际上不会处理OUT模式的参数,因为只有输入参数才会作为函数签名的一部分来标识函数实体。因此,列出IN,INOUT,VARIDIC模式就足够了。
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扩展。

参见

CREATE EXTENSION, DROP EXTENSION

Personal tools