【问题标题】:In PostgreSQL on Windows what effect does the locale have on a database itself在 Windows 上的 PostgreSQL 中,语言环境对数据库本身有什么影响
【发布时间】:2015-10-13 15:04:38
【问题描述】:

我有一个数据库,它是在安装了“默认语言环境”的数据库服务器上创建的,在该服务器上要求“选择新数据库集群要使用的语言环境”。它应该已设置为特定的语言环境。我可以在之后更改它,还是必须从头开始创建数据库?

【问题讨论】:

    标签: postgresql postgresql-9.3


    【解决方案1】:

    它会影响为 DB 选择的文本编码(“代码页”),以及用于文本的排序规则(排序顺序)。

    更改任何一个都需要您转储数据库、删除它、重新创建它并恢复转储。

    创建数据库时,您可以指定特定的ENCODINGLC_CTYPELC_COLLATE 等来覆盖 DB 系统范围的默认值。如果要在创建 DB 时更改编码,则必须使用 TEMPLATE template0

    【讨论】:

    • 这将教会我尝试通过电话接听。当我在你回答的这个问题上输入我的答案并且 OP 已经接受时!
    • @harmic 是的。出于这个原因,我主要将手机用于 cmets 和通知。厌倦了在符号键盘上跳来跳去——markdown 对手机不友好。对于答案,我建议尽早发布,然后在编辑中充实。
    【解决方案2】:

    创建集群时使用的区域设置模板数据库的区域设置。这反过来会影响您在集群中创建的任何其他数据库的区域设置,因为它们是通过复制模板数据库来初始化的(如果您在创建数据库时未指定其他区域设置 - 见下文)。

    语言环境会影响排序规则和编码等方面。编码是字符在数据库中被编码成字节的方式。

    您可以在创建数据库时指定排序规则或编码,但前提是从 template0 创建数据库。见CREATE DATABASE

    您不能更改现有数据库的编码。您必须dump and reload 数据库才能获得不同的编码。

    【讨论】:

    • 感谢您的回答以及有害的:-)
    猜你喜欢
    • 2018-01-21
    • 2011-01-22
    • 1970-01-01
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多