使唯一的键大小写不敏感

Ros*_*osh 5 mysql sql database-design

这是我的 mysql 表架构,我使用 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;
Run Code Online (Sandbox Code Playgroud)

敏感情况下需要唯一的密钥大小写,

它应该允许输入像('a',0) & ('A', 0) 这样的值

尝试将排序规则更改为 latin_1 和 latin_generic_ci

Joh*_*Woo 3

BINARY最简单的是在DDL语句上添加,

`NAME` varchar(128) BINARY NOT NULL
Run Code Online (Sandbox Code Playgroud)

  • 这怎么能解决问题呢?它甚至没有使用“UNIQUE”约束 (2认同)