PostgreSQL 唯一索引和字符串大小写

Posted

技术标签:

【中文标题】PostgreSQL 唯一索引和字符串大小写【英文标题】:PostgreSQL unique indexes and string case 【发布时间】:2011-05-06 16:02:31 【问题描述】:

如果我在一个字段上创建一个 PostgreSQL 唯一索引,比较是否默认不区分大小写?

如果不是,是否可以要求PostgreSQL忽略字符串大小写?

【问题讨论】:

【参考方案1】:

PostgreSQL 区分大小写。做你想做的事,创建一个函数索引。所以说

CREATE UNIQUE INDEX test_upper_idx ON mytable (UPPER(myfield));

这样,当您在查询中使用 UPPER(myfield) 时,将使用索引。

See this link

【讨论】:

@szeryf 以什么方式更好?有什么可以证明它更好吗?【参考方案2】:
CREATE UNIQUE INDEX ux_table_field ON mytable(UPPER(field))

【讨论】:

【参考方案3】:

您应该能够创建基于函数的索引。 (使用字段的UPPER

【讨论】:

以上是关于PostgreSQL 唯一索引和字符串大小写的主要内容,如果未能解决你的问题,请参考以下文章

mysql “索引”能重复吗?“唯一索引”与“索引”区别是啥?

可延迟、不区分大小写的唯一约束

MySql 创建索引原则

postgresql----唯一索引,表达式索引,部分索引

MYSQL中唯一约束和唯一索引的区别

postgreSQL中的唯一索引