PostgreSQL 9.1.1文書
前のページ | 巻戻し |  | 早送り | 次のページ

# 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`

  関数引数のモードで`IN`、`OUT`、`INOUT`、`VARIADIC`のいずれかです。 省略時のデフォルトは`IN`です。 関数を識別するためには入力引数だけが必要ですので、実際のところ`ALTER EXTENSION`は`OUT`引数を考慮しないことに注意してください。 このため`IN`、`INOUT`および`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 EXTENSION`はPostgreSQLの拡張です。

## 関連項目

CREATE EXTENSION, DROP EXTENSION

前のページ | ホーム | 次のページ
ALTER DOMAIN | 上に戻る | ALTER FOREIGN DATA WRAPPER