联表删除
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。不建议使用连表删除,容易出现意想不到的错误,推荐分开删除,然后用事务控制。
当时主要是参考了这篇博客,没经过严格的验证就上发布,会出大问题,以后吸取教训,网上的东西必须经过多轮检验才可以使用。
推荐阅读
- win7删除新建不自动刷新
- bu删除,不拉黑,不联系
- python|8. 文件系统——文件的删除、移动、复制过程以及链接文件
- Android|Android Studio 的 Browse Repositories 下载不了插件
- vue|vue 上移 下移 删除 排序
- xxxxxxx超市水果采购管理问题研究(若涉及侵权,请及时联系,立马删除)
- 微信小程序____CSS篇之定位(position)及浮动(float)
- Option|Option B: Facing Adversity, Building Resilience and Finding Joy
- css的position-relative兼容问题与解决办法
- Django数据库的建立