ALTER EXTENSION — 拡張の定義を変更する
ALTER EXTENSIONnameUPDATE [ TOnew_version] ALTER EXTENSIONnameSET SCHEMAnew_schemaALTER EXTENSIONnameADDmember_objectALTER EXTENSIONnameDROPmember_objectここでmember_objectは以下の通りです。 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_nameまたaggregate_signatureは以下の通りです。 * | [argmode] [argname]argtype[ , ... ] | [ [argmode] [argname]argtype[ , ... ] ] ORDER BY [argmode] [argname]argtype[ , ... ]
ALTER EXTENSIONはインストールされた拡張の定義を変更します。
複数の副構文があります。
UPDATEこの構文は拡張を新しいバージョンに更新します。 拡張は、現在インストールされているバージョンから要求するバージョンに変更することができる、適切な更新スクリプト(またはスクリプト群)を提供しなければなりません。
SET SCHEMAこの構文は拡張のオブジェクトを別のスキーマに移動します。 このコマンドを成功させるためには、拡張は再配置可能でなければなりません。
ADD member_objectこの構文は既存のオブジェクトを拡張に追加します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトはその後拡張のメンバとして扱われます。 特に、オブジェクトの削除は拡張の削除によってのみ可能です。
DROP member_objectこの構文は拡張からメンバオブジェクトを削除します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトは削除されません。拡張との関連がなくなるだけです。
これらの操作の詳細については38.16を参照してください。
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の拡張です。