CREATE COLLATION — 新しい照合順序を定義する
CREATE COLLATIONname( [ LOCALE =locale, ] [ LC_COLLATE =lc_collate, ] [ LC_CTYPE =lc_ctype] ) CREATE COLLATIONnameFROMexisting_collation
CREATE COLLATIONは指定したオペレーティングシステムのロケール設定を使用、または既存の照合順序をコピーすることで新しい照合順序を定義します。
照合順序を新しく作成するためには、格納先のスキーマにおけるCREATE権限が必要です。
name照合順序の名前です。 照合順序の名前はスキーマ修飾することができます。 スキーマ修飾されていない場合、照合順序は現在のスキーマ内に定義されます。 照合順序の名前はそのスキーマ内で一意でなければなりません。 (システムカタログでは異なる符号化方式に対して同じ名前の照合順序を含めることができます。 しかしデータベース符号化方式が異なる場合には無視されます。)
localeこれは同時にLC_COLLATEおよびLC_CTYPEを設定する省略形です。
これを指定した場合、これらのパラメータのどちらも指定することはできません。
lc_collateLC_COLLATEロケールカテゴリに対して指定したオペレーティングシステムのロケールを使用します。
このロケールは現在のデータベース符号化方式に適用可能なものでなければなりません。
(正確な規則についてはCREATE DATABASEを参照してください。)
lc_ctypeLC_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の拡張です。