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 批量插入事务唯一键重复处理的主要内容,如果未能解决你的问题,请参考以下文章