CREATE COLLATION

名前

CREATE COLLATION -- 新しい照合順序を定義する

概要

CREATE COLLATION name (
    [ LOCALE = locale, ]
    [ LC_COLLATE = lc_collate, ]
    [ LC_CTYPE = lc_ctype ]
)
CREATE COLLATION name FROM existing_collation

説明

CREATE COLLATIONは指定したオペレーティングシステムのロケール設定を使用、または既存の照合順序をコピーすることで新しい照合順序を定義します。

照合順序を新しく作成するためには、格納先のスキーマにおけるCREATE権限が必要です。

パラメータ

name

照合順序の名前です。 照合順序の名前はスキーマ修飾することができます。 スキーマ修飾されていない場合、照合順序は現在のスキーマ内に定義されます。 照合順序の名前はそのスキーマ内で一意でなければなりません。 (システムカタログでは異なる符号化方式に対して同じ名前の照合順序を含めることができます。 しかしデータベース符号化方式が異なる場合には無視されます。)

locale

これは同時にLC_COLLATEおよびLC_CTYPEを設定する省略形です。 これを指定した場合、これらのパラメータのどちらも指定することはできません。

lc_collate

LC_COLLATEロケールカテゴリに対して指定したオペレーティングシステムのロケールを使用します。 このロケールは現在のデータベース符号化方式に適用可能なものでなければなりません。 (正確な規則についてはCREATE DATABASEを参照してください。)

lc_ctype

LC_CTYPEロケールカテゴリに対して指定したオペレーティングシステムのロケールを使用します。 このロケールは現在のデータベース符号化方式に適用可能なものでなければなりません。 (正確な規則についてはCREATE DATABASEを参照してください。)

existing_collation

コピーする既存の照合順序の名前です。 新しい照合順序は既存のものと同じ属性を持ちますが、独立したオブジェクトになります。

注意

ユーザ定義の照合順序を削除するためにはDROP COLLATIONを使用してください。

PostgreSQLにおける照合順序サポートに関しては項22.2を参照してください。

オペレーティングシステムのロケールfr_FR.utf8から照合順序を作成します (現在のデータベース符号化方式がUTF8であるとします)。

CREATE COLLATION french (LOCALE = 'fr_FR.utf8');

既存の照合順序から照合順序を作成します。

CREATE COLLATION german FROM "de_DE";

アプリケーションにおいてオペレーティングシステムに依存しない照合順序の名前を使用することができ、便利になるかもしれません。

互換性

標準SQLにはCREATE COLLATIONが存在しますが、既存の照合順序のコピーに限定されています。 新しい照合順序を作成するための構文はPostgreSQLの拡張です。

関連項目

ALTER COLLATION, DROP COLLATION