美文网首页
联表删除

联表删除

作者: 杜子龙 | 来源:发表于2018-12-22 22:02 被阅读0次

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。不建议使用连表删除,容易出现意想不到的错误,推荐分开删除,然后用事务控制。
当时主要是参考了这篇博客,没经过严格的验证就上发布,会出大问题,以后吸取教训,网上的东西必须经过多轮检验才可以使用。

相关文章

  • 联表删除

    sit bug: 表结构:a表是用户、系统、数据权限映射表(不包含所属权限类别字段)b表是数据权限表(包含所属权限...

  • 常用方法

    A alias 联表查询方式 一、table() 二、联表查询(内联、左联、右联、全联)的语法 表1结构--- ...

  • 设置外键,外键约束值的区别

    laravel 设置外键,并设置外键约束的方式 为联级删除 更新:在使用Navicat for mysql设计表时...

  • MySQL:常规操作示例

    删除:DELETE、DROP、TRUNCATE DELETE 删除表内数据。 示例: DROP 删除表,包括表数据...

  • 《SQL必知必会》—— 操作数据

    插入数据 更新数据 删除数据 创建表 更新表 删除表

  • mongo导出导入

    导出库 删除之前表数据导入库 导出表 删除之前表数据导入表

  • Hive02

    外部表创建 外部表与内部表的区别:内部表 删除表 元数据和数据丢失、外部表 删除表 只删除元数据 数据依然存在 L...

  • mysql

    新建表 删除表 删除数据 DELETE 用来删除表中的数据DELETE table_name [WHERE{con...

  • Hive

    一:Hive 默认存储在hdfs上,分为内部表与外部表 内部表删除时数据与元数据均删除 外部表删除时则只删除元数...

  • mongo 联表查询方法

    这里只对同库联表查询做介绍,跨库联表查询可能在之后也会介绍(因为公司架构变动,之后可能会联表查询)我用到的联表查询...

网友评论

      本文标题:联表删除

      本文链接:https://www.haomeiwen.com/subject/gcbwkqtx.html