使唯一的密钥大小写不敏感 [英] Making unique key case insensitive

查看:86
本文介绍了使唯一的密钥大小写不敏感的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是我的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演示

    • SQLFiddle Demo
    • 这篇关于使唯一的密钥大小写不敏感的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆