Mysql 批量插入事务唯一键重复处理
Posted boonya
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql 批量插入事务唯一键重复处理相关的知识,希望对你有一定的参考价值。
在资源组挂靠新的资源时,由于roleId和resGroupId 是组合唯一键,所以在外部事务提交有记录的时候,当前事务提交会存在重复记录,考虑是并发操作导致。
mysqlIntegrityConstraintViolationException: Cannot add or update a child row
利用重复建更新的原理:
<insert id="bindResGroup">
INSERT INTO
`SECURITY_ROLE_RESOURCE_GROUP` (roleId, resGroupId)
VALUES
<foreach collection="resGroupIds" item="resGroupId" separator=",">
( #roleId, #resGroupId)
</foreach>
ON DUPLICATE KEY UPDATE roleId = VALUES(roleId),resGroupId=VALUES(resGroupId)
</insert>
即使存在重复行记录也可以避免批量insert失败。
以上是关于Mysql 批量插入事务唯一键重复处理的主要内容,如果未能解决你的问题,请参考以下文章
MySQL处理重复键错误插入具有多个唯一索引的表;不是多列唯一索引