在PostgreSQL中存储不区分大小写的varchar

9 postgresql collation case-insensitive

我想在SQL表中为我的用户名varchar添加一些约束,这样如果存在用户名,则无法创建不同情况下的重复用户名.我怎样才能做到这一点?谢谢

编辑:
我正在使用PostgreSQL,一点点语法帮助将不胜感激.

Pat*_*ski 22

来自文档

CREATE UNIQUE INDEX lower_title_idx ON films ((lower(title)));
Run Code Online (Sandbox Code Playgroud)


bor*_*yer 5

请注意,PostgreSQL 8.4(当前测试版)将具有不区分大小写的文本类型


ojb*_*ass 4

如果表尚未填充,您可以考虑在进行任何插入并使字段成为主键(或仅具有唯一约束)之前简单地转换为标准大写或小写。如果用户想要在他指定的情况下查看他的用户 ID,这可能是数据库中的另一列。

更新:根据更新的标签,我仍然建议我提出的解决方案较少依赖于特定的 DBMS。