無料スクリプト配布のPHP.TO   PHPの実用的なtips PHPマニュアル MySQLマニュアル Apacheマニュアル PostgreSQLマニュアル マニュアル検索    

CREATE EXTENSION

名前

CREATE EXTENSION -- 拡張をインストールする

概要

CREATE EXTENSION [ IF NOT EXISTS ] 

extension_name


    [ WITH ] [ SCHEMA 

schema_name

 ]
             [ VERSION 

version

 ]
             [ FROM 

old_version

 ]

説明

CREATE EXTENSION は現在のデータベース内に新しい拡張を読み込みます。 読み込み済みの拡張と同じ名前の拡張を読み込むことはできません。

拡張の読み込みは基本的に拡張のスクリプトファイルを実行することと同じです。 スクリプトは通常、関数、データ型、演算子、インデックスサポートメソッドなどの SQL オブジェクトを新しく作成するものです。 CREATE EXTENSION はさらに作成したすべてのオブジェクト識別子を記録して、 DROP EXTENSION が発行された時に削除できるようにします。

拡張の読み込みでは、その要素オブジェクトを作成するために必要となるいくつかの権限が必要です。 ほとんどの拡張で、これはスーパーユーザもしくはデータベース所有者の権限が必要であることを意味します。 CREATE EXTENSION を実行するユーザが、後の権限検査の際に拡張の所有者となります。 同様にこのユーザは拡張のスクリプトにより作成されたすべてのオブジェクトの所有者となります。

パラメータ

IF NOT EXISTS

同じ名前の拡張がすでに存在していてもエラーにしません。 この場合注意が発せられます。 既存の拡張が、現在利用可能なスクリプトファイルより作成されるものと何かしら似たものであることは保証されません。

extension_name

インストールする拡張の名前です。 PostgreSQL SHAREDIR/extension/ extension_name .control ファイルから詳細を読み取り、拡張を作成します。

schema_name

拡張のオブジェクトをインストールするスキーマの名前です。 これにより拡張の内容を再配置させることができます。 指定されたスキーマは事前に存在していなければなりません。 指定がなく、拡張の制御ファイルでもスキーマを指定していない場合、現在のデフォルトのオブジェクト生成用スキーマが使用されます。

拡張自体が任意のスキーマの中にあるとみなされていないことを思い出してください。 拡張は修飾がない名前を持ちますので、データベース全体で一意でなければなりません。 しかし拡張に属するオブジェクトはスキーマの中に置くことができます。

version

インストールする拡張のバージョンです。 これは識別子あるいは文字列リテラルのいずれかとして記述できます。 デフォルトのバージョンは拡張の制御ファイル内で規定したものになります。

old_version

FROM old_version は、 単なるオブジェクトの集合で拡張としてパッケージ化されていない "古い形式" のモジュールを置き換えるために拡張をインストールする時、この場合のみに指定しなければなりません。 このオプションにより CREATE EXTENSION は、新しいオブジェクトを作成するのではなく、既存のオブジェクトをパッケージに取り入れる別のインストールスクリプトを実行するようになります。 すでに存在するオブジェクトを含有するスキーマを SCHEMA で指定することに注意してください。

old_version で使用する値は拡張の作成者が決定しますので、 拡張にアップグレード可能な古い形式のモジュールのバージョンが1つ以上存在する場合に変動する可能性があります。 PostgreSQL 9.1より前で提供された標準の追加モジュールでは、モジュールを拡張形式にアップグレードする時 old_version には unpackaged を使用してください。

注意

拡張をデータベースにロードするために CREATE EXTENSION を使用できるようになる前に、拡張のサポートファイルがインストールされていなければなりません。 PostgreSQL が提供する拡張のインストールに関する情報は、 追加で提供されるモジュール で説明します。

現在ロードで利用可能な拡張は pg_available_extensions または pg_available_extension_versions システムビューで識別できます。

新しい拡張の作成に関しては 項35.15 を参照してください。

現在のデータベースに hstore 拡張をインストールします。

CREATE EXTENSION hstore;

9.1より前にインストールされた hstore を拡張形式に更新します。

CREATE EXTENSION hstore SCHEMA public FROM unpackaged;

既存の hstore オブジェクトをインストールしたスキーマを指定することに注意してください。

互換性

CREATE EXTENSION PostgreSQL の拡張です。

関連項目

ALTER EXTENSION , DROP EXTENSION

powered by SEO.CUG.NET