MySQL 默认校验规则不区分大小写
2013-10-23 00:00
344 查看
背景:系统中通过判断name是否存在决定是插入还是更新,由于是关键属性,name上加了唯一性约束。然而在一次数据同步时,总是报唯一性约束,保存失败。
检查:经核实,是该name由aaa变成了aAa,由于大小写不同,系统认为是一个新对象,做了save操作,但是数据库唯一性校验时认为已经存在,保存失败。
在MySQL中,对于Column Collate其约定的命名方法如下:
*_bin: binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写
解决:修改数据库的默认校验规则为utf8_bin
检查:经核实,是该name由aaa变成了aAa,由于大小写不同,系统认为是一个新对象,做了save操作,但是数据库唯一性校验时认为已经存在,保存失败。
在MySQL中,对于Column Collate其约定的命名方法如下:
*_bin: binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写
解决:修改数据库的默认校验规则为utf8_bin
相关文章推荐
- 修改mysql数据的字符集校验规则使其区分大小写
- mysql列的值默认不区分大小写
- mysql 字符集,校验规则,以及默认编码
- LINUX下的MYSQL默认表名区分大小写
- Linux下MySQL默认对表名区分大小写
- 修改SQL默认不区分大小写字段值规则
- MySQL查询时默认不区分大小写
- mysql大小写规则校验
- COLLATE核对规则在创建表时不用设置(因为数据库是utf8_general_ci的,所以表默认就是不区分大小写)
- 记小问题:linux下mysql的表名默认区分大小写
- linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
- 修改Ubuntu默认的MySQL表名大小写区分
- mysql 字段值默认不区分大小写
- mysql在默认的情况下查询不区分大小写
- MYSQL在默认的情况下查询是不区分大小写的
- mysql校对规则引起的不区分大小写
- mysql 表名默认 windows不区分大小写 在linux区分大小写
- MYSQL在默认的情况下查询是不区分大小写的
- 修改Ubuntu默认的MySQL表名大小写区分
- mysql的like查询默认是不区分大小写的