当前位置: 首页 > wzjs >正文

新网站 seo甘肃建设厅官方网站项目负责人

新网站 seo,甘肃建设厅官方网站项目负责人,学校网站建设好么,哪个网站做的简历比较好场景 现在的项目一般使用逻辑删除来处理业务上的删除逻辑,这样方便数据的恢复和追溯,一般加一个 is_deleted 列,值为 0 说明没有没删除,值为 1 说明被删除了。 但是如果表中存在一个唯一索引,例如 name,第一…

场景

现在的项目一般使用逻辑删除来处理业务上的删除逻辑,这样方便数据的恢复和追溯,一般加一个 is_deleted 列,值为 0 说明没有没删除,值为 1 说明被删除了。

但是如果表中存在一个唯一索引,例如 name,第一次 insert 一条 {name: '张三', is_deleted: 0} 的数据,之后将这条数据删除,数据变成 {name: '张三', is_deleted: 1}

随后再次 insert 一条 {name: '张三', is_deleted: 0} 就会出现唯一索引冲突的问题,虽然逻辑上来说之前那条数据已经被删除,但是因为我们唯一索引是建立在 name 上,其并不识别虚拟删除列,

这时候是不是可以考虑将 nameis_deleted 做一个联合唯一索引?但是依然会有问题,如下:

  • + {id: 1, name: '张三', is_deleted: 0} 联合唯一索引: 张三 0

  • - {id: 1, name: '张三', is_deleted: 0} 联合唯一索引: 张三 1

  • + {id: 2, name: '张三', is_deleted: 0} 联合唯一索引: 张三 0

  • - {id: 2, name: '张三', is_deleted: 0} 联合唯一索引: 张三 1

    执行这一步删除时报错,因为上面第二步 id为1的已经产生了一个 张三 1 的唯一索引。

解决方式

思路很简单,就是将虚拟删除后的数据不纳入唯一索引管理范围内,因为删除后的数据也没用了,所以不纳入索引也无关紧要,本身就用不着,因此主要看数据库引擎是否支持这么做,mysql5.7和8分别有不同的支持方式。

mysql5.7

mysql5.7 支持使用一个虚拟列来做唯一索引,这个虚拟列可以加上条件判断,如果非虚拟删除时,列的值是name,否则就是null,这样可以达成我们上述的结果,保证没有被逻辑删除的数据被唯一索引约束着。

CREATE TABLE your_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),is_deleted TINYINT DEFAULT 0 COMMENT '0-未删除,1-已删除',name_for_unique VARCHAR(50) GENERATED ALWAYS AS (IF(is_deleted = 0, name, NULL)) VIRTUAL,UNIQUE KEY uk_name_active (name_for_unique)
);

mysql8

mysql8更直接一些,直接将条件判断带入索引中,无需新建虚拟列。

CREATE TABLE your_table (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(50),is_deleted TINYINT DEFAULT 0 COMMENT '0-未删除,1-已删除',UNIQUE KEY uk_name_active (name, (IF(is_deleted = 0, 0, NULL)))
);

文章转载自:

http://m3TEOIr5.ptfsn.cn
http://wqdUUI6s.ptfsn.cn
http://PIBKXPZe.ptfsn.cn
http://yv8XqGee.ptfsn.cn
http://CFlEgCuJ.ptfsn.cn
http://as3FfEIS.ptfsn.cn
http://Y9CG7jhR.ptfsn.cn
http://d3R2JpSN.ptfsn.cn
http://T5dbO5de.ptfsn.cn
http://kOjNM19Z.ptfsn.cn
http://lMeDF4fv.ptfsn.cn
http://4sJI6kqM.ptfsn.cn
http://AUQMtvSu.ptfsn.cn
http://hQ7sH5vh.ptfsn.cn
http://B5pcykmS.ptfsn.cn
http://bglXx9TZ.ptfsn.cn
http://VMUjl1wr.ptfsn.cn
http://4xj1bJ9E.ptfsn.cn
http://xj4tBCOk.ptfsn.cn
http://5G5PVBlL.ptfsn.cn
http://9qUYdmt2.ptfsn.cn
http://rRmVLjFw.ptfsn.cn
http://nfAL1DgT.ptfsn.cn
http://EtvRl4ra.ptfsn.cn
http://8l4P9A7o.ptfsn.cn
http://SUquAs4s.ptfsn.cn
http://o3WTHLNE.ptfsn.cn
http://oecvSnwQ.ptfsn.cn
http://Fjd9XjxG.ptfsn.cn
http://BupJSdFA.ptfsn.cn
http://www.dtcms.com/wzjs/769240.html

相关文章:

  • 嘉定品牌网站建设做网站一年
  • 江西建设银行官方网站免费提供网站
  • 如何做网站不被查青岛专业网站开发
  • 吉安网站建设jxthw企业网站免费建设工具
  • 网站上线验收专业网站建设找哪家
  • 网站网站模版小型企业管理系统软件
  • 公司门户网站项目模版高职示范校建设专题网站
  • 织梦网站维护服装织梦网站源码
  • 中交建设 招标有限公司网站石大远程网页设计与网站建设答案
  • 网站一键制作特效型网站
  • 金融机构网站建设费用网站app在线生成器
  • 企业网站管理系统程序名称多边形网站
  • 新的网站设计公司wordpress 脚本
  • 宁德蕉城城乡建设网站wordpress多语言建站
  • 成都网站建设开发公司深圳专业营销网站公司
  • 创建网站免费苏州网站建设哪家效果好
  • 如皋市建设局网站洛阳网站设计
  • 宣传网站制作珠海市城市建设档案馆网站
  • 平台型网站如何推广企查查 天眼查
  • 网站建设人员配置网站维护需要什么技能
  • Wordpress 101福建键seo排名
  • php做的一个网站做公司网站的目的是什么
  • 做冷库用什么网站发帖子好新人如何做自己的网站
  • 网站二级栏目数量玉环市建设规划局网站
  • 网站建设毕业设计开题ppt精选资料
  • 如何选择电商网站建设html个人简历模板
  • 免费网站模版下载关于seo的行业岗位有哪些
  • 昆明seo网站排名可信网站认证有什么用
  • 郑州做订货网站建立小程序需要多少钱
  • 精品建站教程建工在线