mysql中有一些重复的记录。似乎某些特殊情况会触发它。我已经检查了我的代码,但没有给出理由。
spring-boot2.1,mybatis2.1,mysql5.7
'b
'a
答案 0 :(得分:0)
这看起来非常像并发问题。该代码有两件事:
执行多个并发调用addSalesmanUser
时会发生此问题。在这种情况下,第一步可能会获取多个并发调用的空列表,因为在其执行时没有插入其他记录。因此,第二步将插入多个记录。
您写道这不是问题,但是请查看“创建时间”列,相差4毫秒,这表明这是并发执行。
处理此问题的最简单方法是强制实施约束,即对于给定用户,数据库中应该只有一名推销员。为(user_id, salesman_id)
对创建唯一约束。安装到位后,只有一个呼叫会成功。