有这样一个需求:
第一次插入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还是无效
这样得出来的结果就符合需求了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?