postgres - 无法创建排序规则

Posted

技术标签:

【中文标题】postgres - 无法创建排序规则【英文标题】:postgres - cannot create collation 【发布时间】:2013-10-23 16:01:56 【问题描述】:

我有一个在 debian wheezy 上运行的 postgres 9.2 数据库。如果我在 pgadmin 中执行:

CREATE COLLATION en ( LOCALE = 'en_US.UTF-8')

我收到以下错误消息。

ERROR:  could not create locale "en_US.UTF-8": Datei oder Verzeichnis nicht gefunden
DETAIL:  The operating system could not find any locale data for the locale name "en_US.UTF-8".

我已经在那台机器上配置了本地并重新启动了 postgres:

locale-gen en_US.UTF-8
Generating locales (this might take a while)...
  de_DE.UTF-8... done
  en_US.UTF-8... done
  fr_FR.UTF-8... done
  tr_TR.UTF-8... done

但错误仍然存​​在。还有什么我需要检查的吗?

【问题讨论】:

你可能需要重启postgres服务 【参考方案1】:

您的基本问题是 PostgreSQL 使用操作系统区域设置和排序规则。

在 Debian 上,您需要运行以下命令来添加语言环境:

dpkg-reconfigure locales

然后,一旦 en_US.UTF-8 存在,它应该可以工作。

【讨论】:

以上是关于postgres - 无法创建排序规则的主要内容,如果未能解决你的问题,请参考以下文章

使用 pg_dump 将 Postgres 从 Windows 迁移到 Linux 时如何选择正确的排序规则来创建数据库?

别名字段上的 Postgres 排序规则

在 Postgres 上更改排序规则(保持编码)是不是安全?

SQL server中如何更改排序规则

在 SQL 2005 中更改聚集索引列的排序规则

带有 Symfony2 的 Doctrine2 无法识别数据库字符集和排序规则