Set*_*eth 54 mysql sql varchar case-sensitive unique-constraint
我正在尝试使用单词列表填充SQL表.表本身很简单:
CREATE TABLE WORDS(
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)
我遇到的问题是:当我执行以下插入时,背靠背
INSERT INTO WORDS(WORD) VALUES('Seth');
INSERT INTO WORDS(WORD) VALUES('seth');
Run Code Online (Sandbox Code Playgroud)
第二个插入失败,出现约束违规("键'WORD'的重复输入'seth'").
如何使UNIQUE约束WORD区分大小写?
Bil*_*sky 88
您可能需要使用区分大小写的排序规则创建列(例如utf8_bin):
CREATE TABLE WORDS (
ID BIGINT AUTO_INCREMENT,
WORD VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
Run Code Online (Sandbox Code Playgroud)
默认情况下,MySQL忽略大小写和尾随空格的差异varchar.
如果您需要它区分大小写,则可以将表更改为varchar(...) binary.
使用show create table以更好地了解MySQL的这个如何转换为完整的符号.
如果您需要注意尾随空格以及区分大小写,请使用varbinary而不是varchar.
| 归档时间: |
|
| 查看次数: |
42976 次 |
| 最近记录: |