Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含885字,纯文字阅读大概需要2分钟。
内容图文
![Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?](/upload/InfoBanner/zyjiaocheng/869/a717f281f66e4b288904d58fa73269bf.jpg)
一、问题场景
在业务中有个唯一约束A,当该业务进行逻辑删除后(设置标记为删除状态),再往唯一约束列插入相同的值时,此时会报Duplicate entry,但在业务上,该值是必须要插入的。
二、解决思路
方案一:不采用逻辑删除,直接物理删除
方案二: 新建历史表
主表进行物理删除,同时将删除的记录保存到历史表中
方案三:取消表的唯一约束,同时引入redis来保证唯一约束
取消表的唯一约束,在项目中引入redis,通过redis来判重,新增时往redis set记录,删除时,删除redis记录
方案四:变更删除标记为时间戳
将删除状态不以0,1表示,而是以时间戳为值,然后将删除状态为与之前的唯一约束A重新组成唯一联合约束index(A、del_flag),删除时变更del_flag的时间戳
方案五:保留删除标记,同时新建一个字段del_unique_key
保留删除状态位,再新增一个字段del_unique_key,该字段默认值为0,字段类型和大小与主键id保持一致,同时与原先的唯一约束重新组成联合唯一约束index(A,del_unique_key),业务进行逻辑删除,变更del_unique_key的值为该删除行的主键id</
内容总结
以上是互联网集市为您收集整理的Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?全部内容,希望文章能够帮你解决Mysql学习总结(82)——MySQL逻辑删除与数据库唯一性约束如何解决?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。