我制作了一个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
您可以使用区分大小写的排序规则,如utf8_bin字段中的MYCOLUMN

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/

10-10 23:42