一个解析excel批量上传客户的功能
导入的时候,抛出了重复键的异常,这是因为mysql的索引导致,然后通过这个key值上去库中查询这条数据,发现并没有这条数据(插入失败事务回滚导致一条都没有)。
然后我尝试将这条数据单独放到另一个excel中,可以插入成功,于是猜想是否是mybatis批量插入的bug
但想了一下不太可能,因为抛出的异常不同。
网上大概搜了一下,搜到了ignore关键字,在程序中加上这个关键字,并且打了下log,发现一共需要插入72条,实际插入成功69,少了三条,嗯??
比对了一下,找出插入失败的数据,发现一个共同点,有索引的那个字段都出现了两次,不过都是一条大写,一条小写。
难道我们的mysql库大小写不敏感,不太应该啊,查了一下资料,果然排序规则设置为utf8_general_ci,则大小写不敏感,如果需要区分大小写,可以设置为utf8_bin
注:
使用 not in 时,子查询中不能包含null,否则count可能不是预期值