mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案

这篇具有很好参考价值的文章主要介绍了mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、冲突出现原因

在user表中将name字段设置唯一索引,添加逻辑删除字段del_flag(1为删除,0为未删除)之后,将name=张四的字段删除,再添加一个name=张四的记录则会出现冲突

mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案,问题解决,spring boot,mysql

二、解决

1.设置唯一索引组(name+“del_flag”)

mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案,问题解决,spring boot,mysql

删除的时候将del_flag设置为null,未删除时候为0,冲突解决

mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案,问题解决,spring boot,mysql

2.SpringBoot+Mybatis-plus方案

在配置文件中这样配置:文章来源地址https://www.toymoban.com/news/detail-693372.html

mybatis-plus:
  global-config:
    db-config:
      logic-delete-field: del_flag # 全局逻辑删除的实体字段名(since 3.3.0,配置后可以忽略不配置步骤2)
      logic-delete-value: null # 逻辑已删除值(默认为 1)
      logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)

到了这里,关于mysql‘逻辑删除‘和‘唯一索引‘冲突的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL数据库唯一索引

    创建索引是指在某个表的一列或多列上建立一个索引,以便提高对表的访问速度。创建索引有3种方式,分别是1.创建表的时候创建索引、2.在已经存在的表上创建索引和使用3.ALTER TABLE语句来创建索引。 本文福利, 莬 费领取Qt开发学习资料包、技术视频,内容包括(C++语言基

    2024年02月08日
    浏览(67)
  • Mysql-InnoDB索引:普通索引、主键索引、唯一索引、组合索引

    事务方面 InnoDB支持事务,MyISAM不支持事务。这是Mysql将默认存储引擎从MyISAM变成InnoDB的重要原因之一 外键方面 InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MyISAM会失败 索引层面 InnoDB是聚集(聚簇)索引,MyISAM是非聚集(非聚簇)索引。 MyISAM 支持 FULLTEXT 类型

    2024年02月03日
    浏览(54)
  • 【面试】Mysql主键索引普通索引索引和唯一索引的区别是什么?

    在 MySQL 中, 索引是在存储引擎层实现的, 所以并没有统⼀的索引标准, 由于 InnoDB 存储引擎在 MySQL数据库中使⽤最为⼴泛, 下⾯以 InnoDB 为例来分析⼀下其中的索引模型.在 InnoDB 中, 表都是根据主键顺序以索引的形式存放的, InnoDB 使⽤了 B+ 树索引模型,所以数据都是存储在 B+ 树

    2023年04月17日
    浏览(56)
  • Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

    了解了主键索引的底层原理,主键索引其实就是 根据主键字段建立相关的数据结构 (B+树),此后在 使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点。 除了 主键索引外,普通索引和唯一键索引也是如此,只不过普通索引要稍微绕一点,下面会具体介绍。

    2024年02月03日
    浏览(40)
  • MySQL新增唯一索引造成数据丢失问题

      MySQL目前主要有三种DDL方式,MySQL原生的DDL,pt-osc和gh-ost,介绍文章如下: MySQL online ddl与快速加列 pt-osc/gh-ost原理 MySQL online DDL的两个坑   从gh-ost和pt-osc的原理上来讲,全量都是通过insert ignore拷贝到新表,然后增量数据通过触发器或者binlog的方式merge到新表中,这样的

    2024年02月06日
    浏览(37)
  • 【后端面经】MySQL主键、唯一索引、联合索引的区别和作用

    目录 0. 简介 1. 主键 2. 唯一索引 3. 联合索引 4. 索引对数据库操作的影响 5. 其他索引 5.1 普通索引 5.2 全文索引 5.3 前缀索引 6. 总结 7. 参考资料 索引是一类特殊的 文件 ,用来存储检索信息,使数据库查找更加快速。 主键是一类特殊的唯一索引,选择某一列元素作为主键,用

    2024年02月09日
    浏览(48)
  • mysql索引--普通索引,唯一索引,主键索引,参照完整性约束,数据完整性约束

    -- 方法1:create index -- 对employee表的员工部门号列创建普通索引depart_ind -- create index depart_ind on employees(员工部门号); -- 对employee表的姓名和地址列创建复合索引ad_ind; -- create index ad_ind on employees(姓名,地址); -- 对departments表的部门名称列创建唯一索引un_ind; -- create unique index un_ind

    2023年04月21日
    浏览(44)
  • MySQL——插入加锁/唯一索引插入死锁/批量插入效率

    本篇主要介绍MySQL跟加锁相关的一些概念、MySQL执行插入Insert时的加锁过程、唯一索引下批量插入可能导致的死锁情况,以及分别从业务角度和MySQL配置角度介绍提升批量插入的效率的方法; 在介绍MySQL执行插入的加锁过程之前,先复习下几种跟锁相关的概念; 快照读 InnoDB 利

    2024年02月12日
    浏览(37)
  • MySQL的index merge(索引合并)导致数据库死锁分析与解决方案

    在DBS-集群列表-更多-连接查询-死锁中,看到9月22日有数据库死锁日志,后排查发现是因为mysql的优化-index merge(索引合并)导致数据库死锁。 index merge(索引合并):该数据库查询优化的一种技术,在mysql 5.1之后进行引入,它可以在多个索引上进行查询,并将结果合并返回。 在

    2024年02月08日
    浏览(82)
  • jar包冲突解决方案

    使用背景 在构建工程中,不可避免的引入多方依赖。从jar包冲突产生结果可大致分为两类: 1.同一个jar包出现了多个不同的版本。应用选择了错误的版本导致jvm加载不到需要的类或者加载了错误版本的类。 2.不同的jar包出现了类路径一致的类,同样的类出现在多个不同的依赖

    2024年02月09日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包