0
点赞
收藏
分享

微信扫一扫

两表同时删除一条数据

九月的栩 2022-02-27 阅读 141

一.问题描述

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

问题:目前有两个表我们用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 条评论