ALTER EXTENSION — 更改擴充套件的定義
ALTER EXTENSIONname
UPDATE [ TOnew_version
] ALTER EXTENSIONname
SET SCHEMAnew_schema
ALTER EXTENSIONname
ADDmember_object
ALTER EXTENSIONname
DROPmember_object
wheremember_object
is: ACCESS METHODobject_name
| AGGREGATEaggregate_name
(aggregate_signature
) | CAST (source_type
AStarget_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_name
USINGindex_method
| OPERATOR FAMILYobject_name
USINGindex_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_name
LANGUAGElang_name
| TYPEobject_name
| VIEWobject_name
andaggregate_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
函式、過程或聚合引數的模式:IN
、OUT
、INOUT
或 VARIADIC
。如果省略,則預設為 IN
。請注意,ALTER EXTENSION
實際上並不關心 OUT
引數,因為只有輸入引數才需要確定函式的身份。因此,僅列出 IN
、INOUT
和 VARIADIC
引數就足夠了。
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 EXTENSION
是 PostgreSQL 擴充套件。
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。