CSDN博主:【java_wxid】
CSDN博主:点击【Java廖志伟】
CSDN社区:点击【幕后大佬】
码云:点击【互联网Java工程师知识扫盲】
随笔 - 882,  文章 - 0,  评论 - 1,  阅读 - 51800

有这样一个需求:

第一次插入1,2
第二次插入1,3
要求结果为1,3的数据是有效的,2的数据是无效的
在这里插入图片描述

上述的表字段较少,实际开发场景表字段还会多好几倍

解决方案:将单表的字段进行md5加密得出一个版本id,后续只要插入的字段是一样的,那么加密出来的版本id肯定也是一样的。

插入之前先去库里查询版本id,是否和插入字段md5加密得出来的结果一样。

第一次插入直接入库,第二次插入发现有一条记录一样,说明插入的数据中有一条记录已经在数据库里面了。

如果一样说明这一批插入的数据在库里已经有了,不需要插入了。

第一次插入的1和第二次插入的1,他们二个的versionId是一样的,就不需要插入了。

如果不一样,则需要把之前插入的数据进行清洗。

第一次插入的2和第二次插入的3,他们二个的versionId是不一样的,需要将2改为无效,将3改为有效。

清洗步骤:

  • 第一步:直接将库中所有的数据status状态改为无效。

1,2,3的status都改为无效2

  • 第二步:将插入的数据status改为有效

1,3的status改为有效了,2还是无效

这样得出来的结果就符合需求了。

posted on   我是廖志伟  阅读(23)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

南北踏尘
点击右上角即可分享
微信分享提示