mybatis-plus插入数据和逻辑删除冲突
时间: 2023-10-20 18:22:30 浏览: 109
Mybatis-Plus插入数据和逻辑删除之间的冲突可能是由于使用了逻辑删除功能后插入数据时没有考虑到被逻辑删除的数据仍然存在于数据库中。在这种情况下,插入新数据时,可能会出现主键冲突或者唯一索引冲突的问题。
解决这个问题的一个方法是在插入数据时忽略掉逻辑删除的数据。可以通过在插入数据的SQL语句中使用WHERE子句来实现。例如:
```
INSERT INTO table_name (column1, column2, ...)
SELECT value1, value2, ...
FROM dual
WHERE NOT EXISTS (
SELECT * FROM table_name
WHERE deleted = 1 AND primary_key = 'xxx'
)
```
这个SQL语句会先判断是否已经存在被逻辑删除的数据,如果存在,则不进行插入操作。如果不存在,则插入新的数据。
另外,还可以通过在Mybatis-Plus的插件中自定义SQL拦截器来解决这个问题。具体的实现方式可以参考Mybatis-Plus官方文档中关于插件的介绍。
阅读全文