我有一个我编写的 java 程序,它将创建一个 5 位数字的字符串并将其添加到 mysql 数据库中。生成的字符串将是数字 1-9 字母 a-z 和 A-Z 的所有组合
00000 ... 00009 0000a ... 0000z 0000A ... 0000Z 00010 ... 00019
等等
我的问题是,当将这些值添加到数据库时,它不会添加 0000A,因为 0000a 已经存在了
例如如果我
INSERT INTO `mytable`(`mycolumn`) VALUES ("00000");
INSERT INTO `mytable`(`mycolumn`) VALUES ("0000a");
INSERT INTO `mytable`(`mycolumn`) VALUES ("0000A");
出现在我的数据库中的唯一值是 00000 和 0000a
有没有办法让 mysql 在两者之间做出这种区分,这样我就可以拥有看起来唯一的字符串
最佳答案
MySql 字符串是 case sensitive by default .
您可以在 MYCOLUMN
字段中使用区分大小写的排序规则,例如 utf8_bin
:
CREATE TABLE MYTABLE (
ID BIGINT AUTO_INCREMENT,
// other fields...
MYCOLUMN VARCHAR(128) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL UNIQUE,
PRIMARY KEY(ID)
);
关于java - mysql中有没有办法区分两个相同但大小写字母不同的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12992621/