【问题标题】:Add case insensitive collation to PostgreSQL向 PostgreSQL 添加不区分大小写的排序规则
【发布时间】:2013-06-29 14:41:23
【问题描述】:

默认情况下,PostgreSQL 没有区分大小写的排序规则。它的文档描述了一种基于操作系统语言环境添加新排序规则的方法,例如:

http://www.postgresql.org/docs/9.1/static/sql-createcollation.html

但是创建的排序规则是区分大小写的。

我的问题是:如何向 PostgreSQL 服务器添加不区分大小写的排序规则?

有人能描述一下工作流程吗?

我无法在网上找到任何参考资料,而有些人提到这是可能的。 我已经在 Windows 上使用 v9.1 - Debian GNU/Linux 和 v9.2 进行了测试。

只是为了澄清我知道:

  • PostgreSQL CITEXT 附加数据类型
  • LOWER/UPPER 用于搜索和索引。

这些不是我想要的解决方案。

【问题讨论】:

  • 你能给出你不想要的解决方案的理由吗?也许还有另一种你没有想到的方式?我可以猜到lower/upper 的问题,但citext 避免了这些问题:与自定义排序规则一样,它调整了= 的含义,因此不区分大小写对调用代码是透明的。
  • 我完全同意你的问题。我自己也需要同样的东西。你解决了吗?如果是,请添加您自己的答案。

标签: database postgresql collation


【解决方案1】:

Nondeterministic collations”已添加到版本 12:

“非确定性排序规则的最典型用例可能是 不区分大小写的比较。在次要力量,琴弦 大小写不同比较相等”

【讨论】:

    【解决方案2】:

    好像不是possible within Postgres iteself

    不是来自 Postgres 项目——我们只是使用由 操作系统。

    【讨论】:

    • 我不在乎排序规则定义来自哪里。它可能来自操作系统,从网络下载等。我只是希望它们可用于数据库。
    猜你喜欢
    • 2011-05-11
    • 2019-06-19
    • 2014-05-10
    • 2011-06-01
    • 2012-01-12
    • 2011-05-23
    • 2011-03-18
    • 2014-10-31
    • 1970-01-01
    相关资源
    最近更新 更多