当前位置: 首页 > 面试题库 >

SQL唯一varchar区分大小写的问题

凤修筠
2023-03-14
问题内容

我正在尝试用单词列表填充SQL表。该表本身非常简单:

CREATE TABLE WORDS(
  ID BIGINT AUTO_INCREMENT, 
  WORD VARCHAR(128) NOT NULL UNIQUE, 
  PRIMARY KEY(ID)
);

我遇到的问题是这样的:当我执行以下操作时,会背对背插入

INSERT INTO WORDS(WORD) VALUES('Seth');
INSERT INTO WORDS(WORD) VALUES('seth');

第二个插入因约束冲突而失败(“键’WORD’的条目’seth’重复”)。

我如何获得区分大小写的UNIQUE约束WORD


问题答案:

看起来mysql 默认是不区分大小写的:

您可能需要使用区分大小写的排序规则创建列(例如utf8_bin):

CREATE TABLE WORDS (
    ID BIGINT AUTO_INCREMENT, 
    WORD VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE, 
    PRIMARY KEY(ID)
);


 类似资料:
  • 问题内容: 我正在尝试提出一个要求区分大小写的结果的请求。 例如在我的数据库中 该请求是 但我有3行作为结果,我只想要abcdef 我试图找到一个解决方案 但是我有这个错误: 未知归类:’Latin1_General_CS_AS’{“成功”:false,“错误”:“#1273-未知归类:’Latin1_General_CS_AS’”} 谢谢 问题答案: 感谢您的帮助,我找到了不是latin1 ut

  • 问题内容: SQL区分大小写。我使用了MySQL和SQL Server,它们似乎都不区分大小写。总是这样吗?该标准是否定义区分大小写? 问题答案: 该SQL关键字是不区分大小写(,,等),但往往写在全部大写。但是,在某些设置中,表名和列名区分大小写。MySQL有一个配置选项来启用/禁用它。通常,区分大小写的表名和列名是Linux MySQL上的默认名称,不区分大小写的名称曾经是Windows上的默

  • 问题内容: 我的用户名基本上是唯一的(不区分大小写),但是按用户提供的显示时大小写很重要。 我有以下要求: 字段与CharField兼容 字段是唯一的,但不区分大小写 字段需要可忽略大小写进行搜索(避免使用iexact,容易忘记) 字段存储的情况不变 最好在数据库级别执行 最好避免存储额外的字段 在Django中可能吗? 我想出的唯一解决方案是“以某种方式”覆盖模型管理器,使用额外的字段或在搜索中

  • 问题内容: 我有一个Lucene索引,该索引当前区分大小写。我想添加的 选项 有不区分大小写作为后备的。这意味着与案例匹配的结果将获得更大的权重,并且将首先出现。例如,如果结果数限制为10,并且有10个匹配项符合我的情况,那就足够了。如果仅找到7个结果,则可以从不区分大小写的搜索中再添加3个结果。 我的案子实际上更复杂,因为我有不同重量的物品。理想情况下,匹配“错误”的表壳会增加一些重量。不用说,

  • 对于报告(0.1%的所有查询),我需要返回一个所有可能类别的列表,区分大小写! 考虑以下文件: 运行以下查询: 返回: 是否有方法返回区分大小写的类别(存储在文档中)?我对此查询结果中的感兴趣。 Elasticsearch论坛中的问题 谢谢,伊泰