ALTER EXTENSION

名前

ALTER EXTENSION -- 拡張の定義を変更する

概要

ALTER EXTENSION extension_name UPDATE [ TO new_version ]
ALTER EXTENSION extension_name SET SCHEMA new_schema
ALTER EXTENSION extension_name ADD member_object
ALTER EXTENSION extension_name DROP member_object

ここでmember_objectは以下の通りです。

  AGGREGATE agg_name (agg_type [, ...] ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  CONVERSION object_name |
  DOMAIN object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |
  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 |
  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 |
  TYPE object_name |
  VIEW object_name

説明

ALTER EXTENSIONはインストールされた拡張の定義を変更します。 複数の副構文があります。

UPDATE

この構文は拡張を新しいバージョンに更新します。 拡張は、現在インストールされているバージョンから要求するバージョンに変更することができる、適切な更新スクリプト(またはスクリプト群)を提供しなければなりません。

SET SCHEMA

この構文は拡張のオブジェクトを別のスキーマに移動します。 このコマンドを成功させるためには、拡張は再配置可能でなければなりません。

ADD member_object

この構文は既存のオブジェクトを拡張に追加します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトはその後拡張のメンバとして扱われます。 特に、オブジェクトの削除は拡張の削除によってのみ可能です。

DROP member_object

この構文は拡張からメンバオブジェクトを削除します。 これは主に拡張の更新スクリプトで有用です。 オブジェクトは削除されません。拡張との関連がなくなるだけです。

これらの操作の詳細については項35.15を参照してください。

ALTER EXTENSIONを使用するためには拡張の所有者でなければなりません。 同様にADD/DROP構文では追加されるオブジェクトまたは削除されるオブジェクトの所有者でなければなりません。

パラメータ

extension_name

インストールされた拡張の名前です。

new_version

更新したい新しい拡張のバージョンです。 これは識別子または文字列リテラルのいずれかで記述することができます。 指定がない場合、ALTER EXTENSION UPDATEは拡張の制御ファイル内でデフォルトバージョンとして示されるものへの更新を試行します。

new_schema

拡張の新しいスキーマです。

object_name
agg_name
function_name
operator_name

拡張に追加する、または、拡張から削除するオブジェクトの名前です。 テーブル、集約、ドメイン、外部テーブル、関数、演算子、演算子クラス、演算子族、シーケンス、全文検索オブジェクト、型、ビューの名前はスキーマ修飾可能です。

agg_type

集約関数が操作する入力データ型です。 引数を持たない集約関数を参照するためには、入力データ型のリストの部分で*と記述してください。

source_type

キャストの変換元データ型の名前です。

target_type

キャストの変換先データ型の名前です。

argmode

関数引数のモードでINOUTINOUTVARIADICのいずれかです。 省略時のデフォルトはINです。 関数を識別するためには入力引数だけが必要ですので、実際のところALTER EXTENSIONOUT引数を考慮しないことに注意してください。 このためININOUTおよびVARIADIC引数を列挙するだけで十分です。

argname

関数引数の名前です。 関数を識別するためには入力引数だけが必要ですので、実際のところALTER EXTENSIONは引数名を考慮しないことに注意してください。

argtype

もしあれば関数引数のデータ型(スキーマ修飾可)です。

left_type
right_type

演算子の引数のデータ型(スキーマ修飾可)です 前置または後置演算子における存在しない引数にはNONEと記述してください。

PROCEDURAL

これは無意味な単語です。

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の拡張です。

関連項目

CREATE EXTENSION, DROP EXTENSION