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

テンプレートデータベースコレクションのコーディングを変更する方法

    PostgreSQLドキュメントから:

    template1の代わりにtemplate0をコピーするもう1つの一般的な理由は、template0をコピーするときに新しいエンコーディングとロケールの設定を指定できるのに対し、template1のコピーは同じ設定を使用する必要があるためです。これは、template1にはエンコーディング固有またはロケール固有のデータが含まれている可能性があるのに対し、template0には含まれていないことがわかっているためです。

    template0のみを使用できます 異なるエンコーディングとロケールで新しいデータベースを作成するには:

    CREATE DATABASE newdb
    WITH OWNER = postgres
       ENCODING = 'UTF8'
       TABLESPACE = pg_default
       LC_COLLATE = 'zh_CN.UTF-8'
       CONNECTION LIMIT = -1
       TEMPLATE template0;
    

    これは機能しますが、template1に加えた変更を意味します 新しく作成されたデータベースには適用されません。

    template1のエンコーディングと照合を変更するには 最初にtemplate1を削除する必要があります 次に、新しいテンプレートtemplate1を作成します template0から 。テンプレートデータベースを削除する方法は、ここで説明されています。次に、新しいデータベースtemplate1を作成できます 選択したエンコーディング/照合で、datistemplate=trueを設定してテンプレートとしてマークします (例):

    update pg_database set datistemplate=true  where datname='template1';
    


    1. SQLServerクエリをMySQLに変換する

    2. MySQLで過去1時間のデータを取得する方法

    3. PostgreSQLストリーミングレプリケーション入門

    4. ミリ秒単位のDateTimeの表現?