一尘不染

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

mysql

我正在尝试用单词列表填充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


阅读 549

收藏
2020-05-17

共1个答案

一尘不染

看起来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)
);
2020-05-17