PostgreSQL/ロケール設定の確認方法とロケール設定方法
の編集
Top
/
PostgreSQL
/
ロケール設定の確認方法とロケール設定方法
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
PostgreSQL/template0とtemplate1の違いについて
#navi(../) * PostgreSQLのロケール設定の確認方法とロケール設定方法 [#i246495b] PostgreSQLのデータベースクラスタのロケール設定値の確認方法とロケール設定方法を以下に記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#k87b56e1] -[[PostgreSQLのtemplate0とtemplate1の違いについて>PostgreSQL/template0とtemplate1の違いについて]] * 本資料で使用した環境 [#k7403cdf] - OS~ CentOS6(X86_64) #br - PostgreSQL(CentOSのRPMパッケージを使用)~ PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit * データベースクラスタのロケール設定値の確認方法 [#jcb0f4ec] 以下のSQLを発行することによりデータベースクラスタのロケールを確認することができます。 SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%'; 実際にSQLを実行した時の出力結果です。 -bash-4.1$ psql psql (8.4.13) "help" でヘルプを表示します. postgres=# SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%'; name | setting | context -------------+-------------+----------- lc_collate | ja_JP.UTF-8 | internal lc_ctype | ja_JP.UTF-8 | internal lc_messages | ja_JP.UTF-8 | superuser lc_monetary | ja_JP.UTF-8 | user lc_numeric | ja_JP.UTF-8 | user lc_time | ja_JP.UTF-8 | user (6 行) 上記で出力されたlc_%の各種情報ですが、lc_collateとlc_ctypeはcontextがinternalになっています。~ これは変更できないことを意味しています。~ 上記のlc_messages, lc_monetary, lc_numeric, lc_timeに関してはpostgresql.confファイル内で指定することができます。~ このlc_%の値はCREATE DATABASEをした時にデフォルトの値として使用されます。~ CREATE DATABASEコマンドで他のロケールなどを指定すればinitdbコマンドで指定したロケールなどと異なるデータベースを作成することができます。~ この件に関しては後述します。 - lc_%の説明 以下、PostgreSQLのドキュメントから抜粋しました。 |LC_COLLATE|文字列の並び換え順| |LC_CTYPE|文字の分類(文字とはどんなもの?大文字小文字を区別しない?)| |LC_MESSAGES|メッセージの言語| |LC_MONETARY|通貨書式| |LC_NUMERIC|数字の書式| |LC_TIME|日付と時刻の書式| * CREATE TABLEでロケールなどを指定してみる [#m69e250a] 上記では、initdbで作成したデータベースクラスターの値を確認しました。~ 以下、CREATE DATABASEでロケールを指定してみます。 + encoding = eucjp, locale=ja_JP.eucjp createdb --encoding=eucjp --locale=ja_JP.eucjp --template=template0 db1 + locale=C createdb --locale=C --template=template0 db2 + locale=C, encoding=SQL_ASCII createdb --locale=C --encoding=SQL_ASCII --template=template0 db3 上記のコマンドを実行した後の結果をpsql -lで確認しました。 -bash-4.1$ psql -l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 -----------+----------+------------------+-------------+-------------------+----------------------- db1 | postgres | EUC_JP | ja_JP.eucjp | ja_JP.eucjp | db2 | postgres | UTF8 | C | C | db3 | postgres | SQL_ASCII | C | C | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc/postgres 以上、ロケール確認と設定についての資料でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
タイムスタンプを変更しない
#navi(../) * PostgreSQLのロケール設定の確認方法とロケール設定方法 [#i246495b] PostgreSQLのデータベースクラスタのロケール設定値の確認方法とロケール設定方法を以下に記します。 #contents #htmlinsertpcsp(db-top.html,db-sp.html) * 関連資料 [#k87b56e1] -[[PostgreSQLのtemplate0とtemplate1の違いについて>PostgreSQL/template0とtemplate1の違いについて]] * 本資料で使用した環境 [#k7403cdf] - OS~ CentOS6(X86_64) #br - PostgreSQL(CentOSのRPMパッケージを使用)~ PostgreSQL 8.4.13 on x86_64-redhat-linux-gnu, compiled by GCC gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4), 64-bit * データベースクラスタのロケール設定値の確認方法 [#jcb0f4ec] 以下のSQLを発行することによりデータベースクラスタのロケールを確認することができます。 SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%'; 実際にSQLを実行した時の出力結果です。 -bash-4.1$ psql psql (8.4.13) "help" でヘルプを表示します. postgres=# SELECT name, setting, context FROM pg_settings WHERE name LIKE 'lc%'; name | setting | context -------------+-------------+----------- lc_collate | ja_JP.UTF-8 | internal lc_ctype | ja_JP.UTF-8 | internal lc_messages | ja_JP.UTF-8 | superuser lc_monetary | ja_JP.UTF-8 | user lc_numeric | ja_JP.UTF-8 | user lc_time | ja_JP.UTF-8 | user (6 行) 上記で出力されたlc_%の各種情報ですが、lc_collateとlc_ctypeはcontextがinternalになっています。~ これは変更できないことを意味しています。~ 上記のlc_messages, lc_monetary, lc_numeric, lc_timeに関してはpostgresql.confファイル内で指定することができます。~ このlc_%の値はCREATE DATABASEをした時にデフォルトの値として使用されます。~ CREATE DATABASEコマンドで他のロケールなどを指定すればinitdbコマンドで指定したロケールなどと異なるデータベースを作成することができます。~ この件に関しては後述します。 - lc_%の説明 以下、PostgreSQLのドキュメントから抜粋しました。 |LC_COLLATE|文字列の並び換え順| |LC_CTYPE|文字の分類(文字とはどんなもの?大文字小文字を区別しない?)| |LC_MESSAGES|メッセージの言語| |LC_MONETARY|通貨書式| |LC_NUMERIC|数字の書式| |LC_TIME|日付と時刻の書式| * CREATE TABLEでロケールなどを指定してみる [#m69e250a] 上記では、initdbで作成したデータベースクラスターの値を確認しました。~ 以下、CREATE DATABASEでロケールを指定してみます。 + encoding = eucjp, locale=ja_JP.eucjp createdb --encoding=eucjp --locale=ja_JP.eucjp --template=template0 db1 + locale=C createdb --locale=C --template=template0 db2 + locale=C, encoding=SQL_ASCII createdb --locale=C --encoding=SQL_ASCII --template=template0 db3 上記のコマンドを実行した後の結果をpsql -lで確認しました。 -bash-4.1$ psql -l データベース一覧 名前 | 所有者 | エンコーディング | 照合順序 | Ctype(変換演算子) | アクセス権 -----------+----------+------------------+-------------+-------------------+----------------------- db1 | postgres | EUC_JP | ja_JP.eucjp | ja_JP.eucjp | db2 | postgres | UTF8 | C | C | db3 | postgres | SQL_ASCII | C | C | postgres | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | template0 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc/postgres template1 | postgres | UTF8 | ja_JP.UTF-8 | ja_JP.UTF-8 | =c/postgres : postgres=CTc/postgres 以上、ロケール確認と設定についての資料でした。 #htmlinsertpcsp(db-btm.html,db-sp.html)
テキスト整形のルールを表示する