在 Windows 上的 PostgreSQL 中,语言环境对数据库本身有什么影响
In PostgreSQL on Windows what effect does the locale have on a database itself
我在数据库服务器上创建了一个数据库,该数据库服务器安装时在要求 "Select the locale to be used by the new database cluster" 的地方选择了 "Default Locale"。它应该已设置为特定的语言环境。我可以稍后更改它,还是必须从头开始创建数据库?
它会影响为数据库选择的文本编码 ("code page"),以及用于文本的排序规则(排序顺序)。
更改任何一个都需要您转储数据库、删除它、重新创建它并恢复转储。
创建数据库时,您可以指定特定的 ENCODING
、LC_CTYPE
、LC_COLLATE
等来覆盖数据库系统范围的默认值。如果要在创建数据库时更改编码,则必须使用 TEMPLATE template0
。
创建集群时使用的语言环境设置了模板数据库的语言环境。这反过来会影响您在集群中创建的任何其他数据库的语言环境,因为它们是通过复制模板数据库进行初始化的(如果您在创建数据库时未指定其他语言环境 - 请参见下文)。
语言环境会影响整理和编码等方面。编码是在数据库中将字符编码成字节的方式。
您可以在创建数据库时指定排序规则或编码,但前提是从模板 0 创建数据库。参见 CREATE DATABASE
您不能更改现有数据库的编码。您必须 dump and reload 数据库才能获得不同的编码。
我在数据库服务器上创建了一个数据库,该数据库服务器安装时在要求 "Select the locale to be used by the new database cluster" 的地方选择了 "Default Locale"。它应该已设置为特定的语言环境。我可以稍后更改它,还是必须从头开始创建数据库?
它会影响为数据库选择的文本编码 ("code page"),以及用于文本的排序规则(排序顺序)。
更改任何一个都需要您转储数据库、删除它、重新创建它并恢复转储。
创建数据库时,您可以指定特定的 ENCODING
、LC_CTYPE
、LC_COLLATE
等来覆盖数据库系统范围的默认值。如果要在创建数据库时更改编码,则必须使用 TEMPLATE template0
。
创建集群时使用的语言环境设置了模板数据库的语言环境。这反过来会影响您在集群中创建的任何其他数据库的语言环境,因为它们是通过复制模板数据库进行初始化的(如果您在创建数据库时未指定其他语言环境 - 请参见下文)。
语言环境会影响整理和编码等方面。编码是在数据库中将字符编码成字节的方式。
您可以在创建数据库时指定排序规则或编码,但前提是从模板 0 创建数据库。参见 CREATE DATABASE
您不能更改现有数据库的编码。您必须 dump and reload 数据库才能获得不同的编码。