联表删除

sit bug:

        delete a, b from user_data_permission_map a
        left join data_permission b on a.permission_id = b.id
        where a.user_id = #{userId} and a.system_id = #{systemId} and b.category_id = #{categoryId}

表结构:
a表是用户、系统、数据权限映射表(不包含所属权限类别字段)
b表是数据权限表(包含所属权限类别字段)
事后分析:
这里本来只想删除某个用户在指定系统的指定权限类别下的所有数据权限,也就是只删除a表中的部分数据,结果用了delete a, b之后,不仅删除了a表中需要删除的数据,而且也删除了b表中该用户在选定系统下的所有数据权限,这就导致了严重的bug,最后改为delete a就好。比较低级的bug。不建议使用连表删除,容易出现意想不到的错误,推荐分开删除,然后用事务控制。
当时主要是参考了这篇博客,没经过严格的验证就上发布,会出大问题,以后吸取教训,网上的东西必须经过多轮检验才可以使用。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,016评论 2 89
  • ORA-00001: 违反唯一约束条件 (.) 错误说明:当在唯一索引所对应的列上键入重复值时,会触发此异常。 O...
    我想起个好名字阅读 5,437评论 0 9
  • 你为什么活的这么累 ! 01 前天约了好朋友吃饭,过了预定时间20多分钟后,她才急急忙忙跑了过来,一屁股坐下,整个...
    麦芽余鱼阅读 731评论 4 7
  • 建议阅读时间10分钟 《爱的艺术》是美国著名心理学家,哲学家,弗洛姆的经典著作。这本书我读了两遍,相信以后还会反复...
    杨成yc阅读 1,585评论 1 6
  • 虽然现在MRC已经渐渐退出人们的视线了,但是依然会有少部分老程序员喜欢用MRC来编程,当然,更多的情况是以前用MR...
    LGirl阅读 285评论 0 1