`

PostgreSQL – Change Default Encoding of New Databases To UTF-8 (Optional)

 
阅读更多

PostgreSQL – Change Default Encoding of New Databases To UTF-8 (Optional)

When creating a new database (e.g. with createdb blog) PostgreSQL actually copies a template database. There are two predefined templates: template0 is vanilla, while template1 is meant as an on-site template changeable by the administrator and is used by default. In order to change the encoding of new database, one of the options is to change on-site template1. To do this, log into PostgresSQL shell (psql) and execute the following:

1. First, we need to drop template1. Templates can’t be dropped, so we first modify it so it’s an ordinary database:

UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';

2. Now we can drop it:

DROP DATABASE template1;

3. The next step is to create a new database from template0, with a new default encoding:

CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';

4. Now modify template1 so it’s actually a template:

UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';

5. (RECOMMENDED) PostgreSQL documentation advises to VACUUM FREEZE the template:

\c template1
VACUUM FREEZE;

6. (OPTIONAL) If you don’t want anyone connecting to this template, set datallowconn to FALSE:

UPDATE pg_database SET datallowconn = FALSE WHERE datname = 'template1';

Now you can create a new database by running from regular shell:

su -
su - postgres
createdb blog;

If you log in back to psql and check the databases, you should see the proper encoding of your new database:

\l

returns

                              List of databases
  Name    |  Owner   | Encoding  | Collation | Ctype |   Access privileges
-----------+----------+-----------+-----------+-------+----------------------
blog      | postgres | UTF8      | C         | C     |
postgres  | postgres | SQL_ASCII | C         | C     |
template0 | postgres | SQL_ASCII | C         | C     | =c/postgres
                                                     : postgres=CTc/postgres
template1 | postgres | UTF8      | C         | C     |

 

 

 

PostgreSQL – ArchWiki.

 

from: http://journal.tianhao.info/2010/12/postgresql-change-default-encoding-of-new-databases-to-utf-8-optional/#comment-1060

分享到:
评论

相关推荐

    rails3.1.0解决数据库取出来的信息编码为utf-8

    Rails框架默认使用UTF-8编码,但有时数据库(如MySQL、PostgreSQL等)的默认配置可能不一致,或者导入的数据源编码不正确,这就会引起编码问题。要解决这个问题,我们可以采取以下几种方法: 1. **配置数据库连接**...

    postgresql-13.3-2-windows-x64 windows安装器

    postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-windows-x64 windows安装器 postgresql-13.3-2-...

    postgresql-14.1-1-windows-x64

    This release contains a variety of fixes from 14.0. For information about new features in major release 14, see Section E.2. A dump/restore is not required for those running 14.X. However, note that...

    Beginning Databases With PostgreSQL - From Novice To Professional(2nd) 无水印pdf

    Beginning Databases With PostgreSQL - From Novice To Professional(2nd) 英文无水印pdf 第2版 pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或...

    PostgreSQL(postgresql-14.2-2-windows-x64.exe)

    PostgreSQL(postgresql-14.2-2-windows-x64.exe),适用于Windows系统:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象...

    PostgreSQL(postgresql-13.5-1-windows-x64.exe)

    PostgreSQL(postgresql-13.5-1-windows-x64.exe)适用于Windows x86-64 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的...

    xe10_utf_8转换

    5. **数据库交互**:在连接到支持UTF-8的数据库(如MySQL、PostgreSQL等)时,需要确保数据库连接参数设置正确,以便正确地处理UTF-8字符。 Delphi的ADO和FireDAC组件都提供了相应的设置。 6. **网络通信**:如果你...

    postgresql-12.4-1-windows-x64.exe

    postgresql-12.4-1-windows-x64.exe

    postgresql-16.3-2-windows-x64-binaries.zip

    postgresql-16.3-2-windows-x64-binaries.zip

    postgresql-12.18-1-windows-x64.exe

    postgresql-12.18-1-windows-x64.exe

    Shp导入postgis中的过程

    PostGIS 是一个基于 PostgreSQL 的空间数据库扩展,提供了强大的空间数据存储和分析功能。将 Shp 文件导入 PostGIS 中,可以充分发挥 PostGIS 的空间分析能力,实现高效的空间数据处理和分析。 Shp 文件导入 ...

    postgresql-10.21-1-windows-x64.exe安装包

    postgresql-10.21-1-windows-x64.exe安装包

    PostgreSQL(postgresql-14.1-1-windows-x64.exe)

    PostgreSQL(postgresql-14.1-1-windows-x64.exe)适用于Windows x86-64 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的...

    Python库 | databases.py-1.0.1-py3-none-any.whl

    `databases.py-1.0.1-py3-none-any.whl` 是一个 Python 的库文件,用于在 Python 应用程序中与数据库交互。这个文件是 Python 的 Wheel 格式,它是预编译的 Python 包,可以方便地安装到用户的 Python 环境中。Wheel...

    postgresql-16.2-1-windows-x64.exe

    PostgreSQL 是一个强大的开源关系型数据库管理系统,其最新版本为16.2,在Windows操作系统上提供了64位的安装程序,文件名为"postgresql-16.2-1-windows-x64.exe"。这个安装程序是专为在Windows环境中运行PostgreSQL...

    postgresql-11.2-1-windows-x64.exe

    postgresql-11.2-1-windows-x64.exe

    postgresql-15.2-1-windows-x64版本

    postgresql-15.2-1-windows-x64版本

    postgresql-9.1.3-1-windows-x64

    此“postgresql-9.1.3-1-windows-x64”压缩包是专为64位Windows系统设计的PostgreSQL 9.1.3版本。 PostgreSQL 9.1.3是该数据库系统的其中一个稳定版本,发布于2012年,包含了多项增强和修复。在这一版本中,开发者...

    postgresql-9.5.3-1-windows-x64

    postgresql-9.5.3-1-windows-x64,windows64位版本,安装后自带pgAdmin图形管理工具

    postgresql-10.12-1-windows-x64.exe

    PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES的许多领先概念只是在比较迟的时候才出现...

Global site tag (gtag.js) - Google Analytics