2025年9月25日: PostgreSQL 18 釋出!
支援的版本:當前 (18) / 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 EXTENSION,您必須擁有該擴充套件。 ADD/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 擴充套件。

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。