本文介绍了使唯一的密钥大小写不敏感的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的mysql表模式,im使用mysql 5
This is my schema for mysql table, im using mysql 5
--
-- Table structure for table `DATA_USER_ROLE`
--
DROP TABLE IF EXISTS `DATA_USER_ROLE`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `DATA_USER_ROLE` (
`ID` int(11) NOT NULL,
`NAME` varchar(128) NOT NULL,
`VAL_ID` int(11) NOT NULL,
`CREATION_TIME` datetime NOT NULL,
`ROLE_TYPE` int(11) NOT NULL,
`STORAGE_TYPE` int(11) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `BV_AC_ROLE_KEY_IDX` (`NAME`,`VAL_ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
需要非常敏感的主要案例
Needed UNIQUE KEY case in sensitive,
它应该允许输入像('a',0)& ('A',0)
It should allow to enter the value like('a',0) & ('A', 0)
尝试将排序规则改为latin_1和latin_generic_ci
tried changing collation to latin_1 and latin_generic_ci
推荐答案
最简单的是在DDL语句上添加 BINARY
,
The simpliest is to add BINARY
on the DDL statement,
`NAME` varchar(128) BINARY NOT NULL
- SQLFiddle Demo
这篇关于使唯一的密钥大小写不敏感的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!