spring 事务中先删除再插入后唯一键冲突 delete then insert duplicate key
今天在同事碰到了一个比较有意思的问题,为了实现某个场景中的数据更新和删除,想通过 delete all entities 然后 insert new entities 的方式减少判断数据是否删除的操作,结果由于表内有其他唯一索引报错唯一键冲突。并且也没有对唯一索引进行更新,从而导致后面插入新版本数据的过程中,如果是修改的数据那么会在唯一索引找到重复的键从而导致冲突。后面在 debug 的过程中,用 evaluate 查询数据确实不在,但是 insert 的时候会报唯一键冲突导致插入失败事务回滚。
原创
2022-11-30 23:36:04 ·
5267 阅读 ·
3 评论