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