PostgreSQL 唯一索引和字符串大小写
如果我在字段上创建 PostgreSQL 唯一索引,比较默认情况下是否不区分大小写?
如果没有,是否可以要求 PostgreSQL 忽略字符串大小写?
If I create a PostgreSQL unique index on a field, is the comparison case-insensitive by default?
If not, is it possible to ask PostgreSQL to ignore string case?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
PostgreSQL 区分大小写。为了做你想做的事,创建一个函数索引。这样说
,当您在查询中使用
UPPER(myfield)
时,将使用索引。查看此链接
PostgreSQL is case sensitive. To do what you want create a function index. So say
That way when you use
UPPER(myfield)
in your query the index will be used.See this link
另一种方法是使列数据类型为 citext(不区分大小写的文本)。
这样你就不需要在创建索引时调用
lower
函数。有用的链接:
Another approach would be to make you column data type a
citext
(case-insensitive text).This way tou do not need to calll the
lower
function on the index creation.Usefull links:
您应该能够创建基于函数的索引。 (使用字段的
UPPER
)you should be able to create a function based index. (use the
UPPER
of the field)