两表同时删除一条数据

一.问题描述

在这个星期的开发终于到了一个问题,现在想一想就是一个简单的问题,我把他归纳为-----两表同删,今天来总结一下这个问题来加深一下印象.

问题:目前有两个表我们用t1和t2表示,t2表中的数据是从t1表中拿到的

如图:描述:我的逻辑是查出t1中没有删除的数据,然后再根据我们的唯一标识来循环insert到我们的t2表中,这个功能是没有问题的,但是我忽略了一个问题,当我们t1表中的一条数据已经删除了,但我们的t2表中已经存在这条数据了,我们t1表中删除的数据依然会在t2表中存在的,这就发生了问题

 二.思考:

在我们删除t1表中数据的同时也应该把我们的t2表中的数据同时删掉,做到同步删除

三.代码表示一下:

首先来编写两条简单的sql:

update t1 set deleted=#{deleted} where id=#{id}
update t2 set deleted=#{deleted} where id=#{id} 

业务层代码:

 public Map<String, Object> del(Integer id, Integer deleted) {
        Map<String, Object> data = new HashMap<>();
        try {
            // 删除信息
            int resultTable1 = developMapper.updateTable1(id, deleted);
            int resultTable2 = developMapper.updateTable2(id, deleted);
            if(result == 0){
                data.put("code",0);
                data.put("msg","删除用户失败");
                logger.error("删除用户失败");
                return data;
            }
            data.put("code",1);
            data.put("msg","删除用户成功");
            logger.info("删除用户成功");
        } catch (Exception e) {
            logger.error("删除用户异常!", e);
        }
        return data;
    }

四.解决问题:按代码执行顺序t1表删除完这条数据t2表也会删除这条数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值