您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django中不区分大小写的唯一模型字段?

Django中不区分大小写的唯一模型字段?

将原始大小写混合的字符串存储在纯文本列中。使用数据类型textvarchar不使用长度修饰符而不是varchar(n)。它们本质上是相同的,但是必须使用varchar(n)设置任意长度限制,如果以后要更改,可能会很麻烦。在手册中或Peter Eisentraut @ serverfault.SE的相关答案中了解更多有关此内容的信息。

创建一个功能独特的指数上lower(string)。这是这里的重点:

CREATE UNIQUE INDEX my_idx ON mytbl(lower(name));

如果尝试INSERT使用小写形式的混合大小写名称,则会出现唯一的密钥冲突错误。 对于快速相等搜索,请使用如下查询

SELECT * FROM mytbl WHERE lower(name) = 'foo' --'foo' is lower case, of course.

使用你在索引中使用的相同表达式(以便查询计划程序可以识别兼容性),这将非常快。

Go 2022/1/1 18:23:17 有372人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶