背景:系统中经过判断name是否存在决定是插入仍是更新,因为是关键属性,name上加了惟一性约束。然而在一次数据同步时,老是报惟一性约束,保存失败。 数据库
检查:经核实,是该name由aaa变成了aAa,因为大小写不一样,系统认为是一个新对象,作了save操做,可是数据库惟一性校验时认为已经存在,保存失败。
在MySQL中,对于Column Collate其约定的命名方法以下:
*_bin: binary case sensitive collation,也就是说是区分大小写的
*_cs: case sensitive collation,区分大小写
*_ci: case insensitive collation,不区分大小写 spa
解决:修改数据库的默认校验规则为utf8_bin
对象