插入數據的時候 報錯,Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'xxx-xxx-xxx-xxx-xxx' for key 'AA'
1、這段信息給出的是索引重復,就去找數據是否相同,但是並不相同。
2、又由於'xxx-xxx-xxx-xxx-xxx'部分只顯示60個字符,懷疑是數據被截取,變換參數值嘗試,還是報錯。
3、再次對批量的數據逐條debug,最后定位到出錯的那條數據,發現是組合索引中的一個參數,有大小寫兩條數據,在插入后一條時報錯。
4、對數據庫中的該字段,根據業務需要,改成支持大小寫的。
5、mysql的唯一索引或組合索引中某個字段,設置區分大小寫。具體操作: 字段設定里面有一個【二進制(Binary)】的選項,需要區分大小寫的字段勾上就可以了。
踩坑點:
1、堆棧打印的錯誤信息 索引重復只打印部分,不打印全部,這個導致排查耗時。
2、mysql的索引添加時,默認不區分大小寫。