【发布时间】:2015-10-13 15:04:38
【问题描述】:
我有一个数据库,它是在安装了“默认语言环境”的数据库服务器上创建的,在该服务器上要求“选择新数据库集群要使用的语言环境”。它应该已设置为特定的语言环境。我可以在之后更改它,还是必须从头开始创建数据库?
【问题讨论】:
我有一个数据库,它是在安装了“默认语言环境”的数据库服务器上创建的,在该服务器上要求“选择新数据库集群要使用的语言环境”。它应该已设置为特定的语言环境。我可以在之后更改它,还是必须从头开始创建数据库?
【问题讨论】:
它会影响为 DB 选择的文本编码(“代码页”),以及用于文本的排序规则(排序顺序)。
更改任何一个都需要您转储数据库、删除它、重新创建它并恢复转储。
创建数据库时,您可以指定特定的ENCODING、LC_CTYPE、LC_COLLATE 等来覆盖 DB 系统范围的默认值。如果要在创建 DB 时更改编码,则必须使用 TEMPLATE template0。
【讨论】:
创建集群时使用的区域设置模板数据库的区域设置。这反过来会影响您在集群中创建的任何其他数据库的区域设置,因为它们是通过复制模板数据库来初始化的(如果您在创建数据库时未指定其他区域设置 - 见下文)。
语言环境会影响排序规则和编码等方面。编码是字符在数据库中被编码成字节的方式。
您可以在创建数据库时指定排序规则或编码,但前提是从 template0 创建数据库。见CREATE DATABASE
您不能更改现有数据库的编码。您必须dump and reload 数据库才能获得不同的编码。
【讨论】: