sql >> データベース >  >> RDS >> PostgreSQL

PostgreSQL9.1のインストールとデータベースのエンコーディング

    関連するオプションは--locale=localeです。 initdbへ データベースクラスターを初期化するコマンド。明示的に指定しない場合、デフォルトでシステムロケールになります。 (おそらくロケール「C」でUbuntuを実行します。)

    詳細については、こちらの優れたマニュアルをご覧ください

    PostgreSQLではできます template0に基づいて新しいデータベースを作成することにより、異なるロケールのデータベースに忍び込みます。 デフォルトのtempleate1の代わりに 。 マニュアルはこちら を引用します :

    ただし、目的のロケールでデータベースクラスターを再作成したいと思います。はるかにきれいです。

    編集:利用可能なロケールに関する情報

    使用のみ オペレーティングシステムによって提供されるロケール。 ここのマニュアル を引用します :

    locale-genを見てください Unixシステムで、まだ生成されていないロケールを使用する場合。理解しておくべき重要なことは、OSに複数のロケールをインストールできますが、LC_CTYPEなどのシステムパラメータにはそのうちの1つしか選択できないということです。 、LC_COLLATE 、など。localeの出力を見てください。 対locale -a シェルで。通常はすべて同じで、LC_ALLで設定します 。

    @David:あなたがしたことで問題は解決したかもしれませんが、もっと簡単にできたはずです。また、環境変数LANGにも注意してください。 デフォルトのみを提供します すべてのロケール設定。それらのいずれかが別のものに設定されている場合は、LANG オーバーライドされます。 LC_ALLを設定します 既存の設定を上書きします。これが1つです。多くのサイトの それについてもっと教えてくれるウェブで。

    データベース(クラスター)の現在のロケール設定をすべて確認するには、データベースで実行します。

    SHOW ALL;
    

    またはより具体的に:

    SELECT *
    FROM   pg_settings
    WHERE  name ~~ 'lc%';
    


    1. 複数の条件が真である左側の結合テーブルから行を選択します

    2. カスケード削除で呼び出しをトリガーする

    3. 並列統計再構築のサポートの改善

    4. すべての列を連結するMySQL