详解MyBatisPlus逻辑删除与唯一索引冲突问题
但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entry的问题。举个例子:原来数据库结构:这里location_id是唯一索引这里在删除添加某一条数据后,delete_flag变成0,当删除后delete_flag会变成1,再次添加相同的数据时,由于数据库检测不到原来数据,会报数据重复Duplicate entry的问题解决办法:SQL数据结构,将delete_flag用时间戳进行表示,唯一索引变成了联合唯一索引 UNIQUE KEY unique_location_delete_flag ,当添加一条数据时,delete_flag变成null,当删除数据时,delete_flag变成删除时的一个时间戳。entity类:yml配置文件:
下载地址
用户评论