支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1

ALTER EXTENSION

ALTER EXTENSION — 變更擴充功能的定義

概要

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 [ , ... ]

描述

ALTER EXTENSION 變更已安裝擴充功能的定義。 有幾種子形式

UPDATE

此形式將擴充功能更新到較新的版本。 擴充功能必須提供合適的更新腳本(或一系列腳本),這些腳本可以將目前已安裝的版本修改為請求的版本。

SET SCHEMA

此形式將擴充功能的物件移動到另一個綱要。 擴充功能必須是可重新定位的,此命令才能成功。

ADD member_object

此形式將現有的物件新增到擴充功能。 這主要在擴充功能更新腳本中很有用。 該物件隨後將被視為擴充功能的成員; 特別是,它只能透過捨棄擴充功能來捨棄。

DROP member_object

此形式從擴充功能中移除成員物件。 這主要在擴充功能更新腳本中很有用。 該物件不會被捨棄,僅與擴充功能取消關聯。

有關這些操作的更多資訊,請參閱第 36.17 節

您必須擁有擴充功能才能使用 ALTER EXTENSIONADD/DROP 形式也需要擁有新增/捨棄的物件。

參數

name

已安裝擴充功能的名稱。

new_version

擴充功能所需的較新版本。 這可以寫為識別碼或字串常值。 如果未指定,則 ALTER EXTENSION UPDATE 會嘗試更新為擴充功能控制檔案中顯示的預設版本。

new_schema

擴充功能的新綱要。

object_name
aggregate_name
function_name
operator_name
procedure_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

轉換語言的名稱。

範例

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 EXTENSIONPostgreSQL 擴充功能。

提交更正

如果您在說明文件中發現任何不正確、與您使用特定功能的經驗不符或需要進一步澄清的地方,請使用此表單來報告說明文件問題。