我想在SQL表中为我的用户名 varchar 添加一些约束,这样如果存在用户名,则无法创建不同情况下的重复用户名。我怎样才能做到这一点?感谢
编辑:
我正在使用PostgreSQL,一点点语法帮助将不胜感激。
答案 0 :(得分:22)
来自docs
CREATE UNIQUE INDEX lower_title_idx ON films ((lower(title)));
答案 1 :(得分:3)
如果表尚未填充,您可以考虑在进行任何插入之前简单地转换为标准大写或小写,并使该字段成为主键(或者只是具有唯一约束)。如果用户想要在他指定的情况下看到他的用户ID,那么这可能是数据库中的另一列。
更新:根据更新后的标签,我仍然建议我提出的解决方案不再依赖于特定的DBMS。
答案 2 :(得分:3)
请注意,PostgreSQL 8.4(目前为测试版)将有case-insensitive text type。