CREATE COLLATION — 新しい照合順序を定義する
CREATE COLLATIONname
( [ LOCALE =locale
, ] [ LC_COLLATE =lc_collate
, ] [ LC_CTYPE =lc_ctype
] ) CREATE COLLATIONname
FROMexisting_collation
CREATE COLLATION
は指定したオペレーティングシステムのロケール設定を使用、または既存の照合順序をコピーすることで新しい照合順序を定義します。
照合順序を新しく作成するためには、格納先のスキーマにおけるCREATE
権限が必要です。
name
照合順序の名前です。 照合順序の名前はスキーマ修飾することができます。 スキーマ修飾されていない場合、照合順序は現在のスキーマ内に定義されます。 照合順序の名前はそのスキーマ内で一意でなければなりません。 (システムカタログでは異なる符号化方式に対して同じ名前の照合順序を含めることができます。 しかしデータベース符号化方式が異なる場合には無視されます。)
locale
これは同時にLC_COLLATE
およびLC_CTYPE
を設定する省略形です。
これを指定した場合、これらのパラメータのどちらも指定することはできません。
lc_collate
LC_COLLATE
ロケールカテゴリに対して指定したオペレーティングシステムのロケールを使用します。
このロケールは現在のデータベース符号化方式に適用可能なものでなければなりません。
(正確な規則についてはCREATE DATABASEを参照してください。)
lc_ctype
LC_CTYPE
ロケールカテゴリに対して指定したオペレーティングシステムのロケールを使用します。
このロケールは現在のデータベース符号化方式に適用可能なものでなければなりません。
(正確な規則についてはCREATE DATABASEを参照してください。)
existing_collation
コピーする既存の照合順序の名前です。 新しい照合順序は既存のものと同じ属性を持ちますが、独立したオブジェクトになります。
オペレーティングシステムのロケールfr_FR.utf8
から照合順序を作成します
(現在のデータベース符号化方式がUTF8
であるとします)。
CREATE COLLATION french (LOCALE = 'fr_FR.utf8');
既存の照合順序から照合順序を作成します。
CREATE COLLATION german FROM "de_DE";
アプリケーションにおいてオペレーティングシステムに依存しない照合順序の名前を使用することができ、便利になるかもしれません。
標準SQLにはCREATE COLLATION
が存在しますが、既存の照合順序のコピーに限定されています。
新しい照合順序を作成するための構文はPostgreSQLの拡張です。