我正在尝试使用单词列表填充 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');
第二次插入因违反约束而失败(“Duplicate entry 'seth' for key 'WORD'”)。
如何使 WORD
上的 UNIQUE
约束区分大小写?
最佳答案
看起来mysql是case insensitive by default :
您可能需要使用区分大小写的排序规则(例如 utf8_bin)创建列:
CREATE TABLE WORDS (
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
关于mysql - SQL唯一varchar区分大小写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6448825/