Postgresql 中文操作指南

ALTER EXTENSION

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:

  ACCESS METHOD object_name |
  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 |
  PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  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 |
  TRANSFORM FOR type_name LANGUAGE lang_name |
  TYPE object_name |
  VIEW object_name

and aggregate_signature is:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

Description

ALTER EXTENSION 更改已安装扩展的定义。有几种子形式:

  • UPDATE

    • 此表单将扩展更新到较新版本。该扩展必须提供一个合适的更新脚本(或一系列脚本),可以将当前安装版本修改为请求版本。

  • SET SCHEMA

    • 此表单将扩展的对象移至另一个架构。该扩展必须为 relocatable ,此命令才可成功。

  • ADD _member_object_

    • 此表单将现有对象添加到扩展。这主要在扩展更新脚本中很有用。对象随后将被视为扩展成员;值得注意的是,它只能通过删除扩展来删除。

  • DROP _member_object_

    • 此表单从扩展中删除成员对象。这主要在扩展更新脚本中很有用。对象不会被删除,只与扩展解除关联。

有关这些操作的更多信息,请参见 Section 38.17

您必须拥有扩展才能使用 ALTER EXTENSIONADD / DROP 表单还需要所添加/删除对象的拥有权。

Parameters

  • name

    • 已安装扩展的名称。

  • new_version

    • 扩展所需的较新版本。可以写为标识符或字符串文本。如果未指定, ALTER EXTENSION UPDATE 将尝试更新到扩展控制文件中显示的默认版本。

  • new_schema

    • 扩展的新架构。

  • object_nameaggregate_namefunction_nameoperator_nameprocedure_name__routine_name

    • 要添加到扩展或从扩展中删除的对象名称。表、聚合、域、外部表、函数、运算符、运算符类、运算符族、过程、例程、序列、文本搜索对象、类型和视图的名称可以限定架构。

  • source_type

    • 转换的源数据类型的名称。

  • target_type

    • 转换的目标数据类型的名称。

  • argmode

    • 函数、过程或聚合参数的模式: INOUTINOUTVARIADIC 。如果省略,默认值为 IN 。请注意, ALTER EXTENSION 实际上不会注意到 OUT 参数,因为只需输入参数即可确定函数的身份。因此,只需列出 ININOUTVARIADIC 参数即可。

  • argname

    • 函数、过程或聚合参数的名称。请注意, ALTER EXTENSION 实际上不会注意到参数名称,因为只需参数数据类型即可确定函数的身份。

  • argtype

    • 函数、过程或聚合参数的数据类型。

  • left_type__right_type

    • 运算符参数的数据类型(可选模式限定)。为前缀运算符的缺失参数编写 NONE

  • PROCEDURAL

    • 这是一个干扰词。

  • type_name

    • 转换的数据类型的名称。

  • lang_name

    • 转换的语言名称。

Examples

要将 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);

Compatibility

ALTER EXTENSION 是 PostgreSQL 扩展。