2

我有一个我制作的 java 程序,它将创建一个 5 位字符串并将其添加到 mysql 数据库中。生成的字符串将是数字 1-9 字母 az 和 AZ 的每个组合,例如

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在两者之间做出这种区分,这样我就可以拥有看起来唯一的字符串

4

2 回答 2

1

MySql 字符串默认区分大小写

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)
);
于 2012-10-20T21:09:06.227 回答
0

要使列区分大小写,您可以在定义中使用关键字 binary。例如:

CREATE TABLE mytable (
    mycolumn VARCHAR(20) BINARY
);

无论如何,最好的解决方案是使用@Reimeus 所说的区分大小写的排序规则。

于 2012-10-20T21:07:16.047 回答