对于可能以不同语言使用的 PostgreSQL 数据库,正确的排序规则是啥?

Posted

技术标签:

【中文标题】对于可能以不同语言使用的 PostgreSQL 数据库,正确的排序规则是啥?【英文标题】:What is the right collation to be for a PostgreSQL database which may be used in different languages?对于可能以不同语言使用的 PostgreSQL 数据库,正确的排序规则是什么? 【发布时间】:2012-04-21 03:52:12 【问题描述】:

我有一个由以下人员创建的数据库:

-- Database: adatabase

-- DROP DATABASE adatabase;

CREATE DATABASE adatabase
  WITH OWNER = adatabaseowner
       ENCODING = 'SQL_ASCII'
       TABLESPACE = pg_default
       LC_COLLATE = 'C'
       LC_CTYPE = 'C'
       CONNECTION LIMIT = -1;

这些似乎是我的 PostgreSQL 8.4 安装中的默认设置,这似乎基于我的 Ubuntu 安装设置的默认语言环境。

如果我以后想使系统多语言,我应该使用哪些适当的设置?

【问题讨论】:

【参考方案1】:

您至少应该使用 UTF-8 进行编码。使用 SQL_ASCII 您不能存储非英语字符(例如法语重音字符、德语变音符号)。

如果您升级到 9.1,则可以在查询 (ORDER BY ... COLLATE ...) 中或按列“即时”定义排序规则。

【讨论】:

以上是关于对于可能以不同语言使用的 PostgreSQL 数据库,正确的排序规则是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 CSV 为 PostgreSQL 副本生成模式

是否有不同语言的初始列表容量比较?

程序语言

PostgreSQL 中不同语言的性能/兼容性有啥不同吗?

正确查询以获取 PostgreSQL 数据库中的当前连接数

如何在 postgresql 中对 json 类型使用唯一约束