ALTER EXTENSION — 更改擴充套件的定義
ALTER EXTENSIONnameUPDATE [ TOnew_version] ALTER EXTENSIONnameSET SCHEMAnew_schemaALTER EXTENSIONnameADDmember_objectALTER EXTENSIONnameDROPmember_objectwheremember_objectis: ACCESS METHODobject_name| AGGREGATEaggregate_name(aggregate_signature) | CAST (source_typeAStarget_type) | COLLATIONobject_name| CONVERSIONobject_name| DOMAINobject_name| EVENT TRIGGERobject_name| FOREIGN DATA WRAPPERobject_name| FOREIGN TABLEobject_name| FUNCTIONfunction_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | MATERIALIZED VIEWobject_name| OPERATORoperator_name(left_type,right_type) | OPERATOR CLASSobject_nameUSINGindex_method| OPERATOR FAMILYobject_nameUSINGindex_method| [ PROCEDURAL ] LANGUAGEobject_name| PROCEDUREprocedure_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | ROUTINEroutine_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | SCHEMAobject_name| SEQUENCEobject_name| SERVERobject_name| TABLEobject_name| TEXT SEARCH CONFIGURATIONobject_name| TEXT SEARCH DICTIONARYobject_name| TEXT SEARCH PARSERobject_name| TEXT SEARCH TEMPLATEobject_name| TRANSFORM FORtype_nameLANGUAGElang_name| TYPEobject_name| VIEWobject_nameandaggregate_signatureis: * | [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_nameaggregate_namefunction_nameoperator_nameprocedure_nameroutine_name要新增到擴充套件或從擴充套件中移除的物件名稱。表、聚合、域、外部表、函式、運算子、運算子類、運算子族、過程、例程、序列、文字搜尋物件、型別和檢視的名稱可以包含模式限定。
source_type型別轉換的源資料型別的名稱。
target_type型別轉換的目標資料型別的名稱。
argmode函式、過程或聚合引數的模式:IN、OUT、INOUT 或 VARIADIC。如果省略,則預設為 IN。請注意,ALTER EXTENSION 實際上並不關心 OUT 引數,因為只有輸入引數才需要確定函式的身份。因此,僅列出 IN、INOUT 和 VARIADIC 引數就足夠了。
argname函式、過程或聚合引數的名稱。請注意,ALTER EXTENSION 實際上並不關心引數名稱,因為只有引數資料型別才需要確定函式的身份。
argtype函式、過程或聚合引數的資料型別。
left_typeright_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 EXTENSION 是 PostgreSQL 擴充套件。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。