安全架构-幂等性设计-SQL

本文探讨了SQL操作中的幂等性设计,强调了幂等性在查询、新增、修改和删除操作中的重要性。文章分析了不同场景下的幂等性问题,并提出了四种解决方案:1) token机制,通过结合token和Redis来防止重复请求;2) 乐观锁机制,通过版本号确保计算赋值操作的幂等性;3) 唯一主键机制,利用数据库的主键约束处理插入操作的幂等性;4) 去重表机制,通过预处理确保唯一性。文章还讨论了这些解决方案的优缺点,并建议在实际应用中选择最适合的策略。
摘要由CSDN通过智能技术生成

安全架构-幂等性设计

幂等性设计的文章有几篇了,虽然侧重点不一样分为了api幂等,http幂等,sql幂等,实际上是一回事。
本篇从侧重SQL语句操作入手介绍sql操作保证的幂等性。



前言

一、SQL幂等场景

一、查询,select * from user where xxx,不会对数据产生任何变化,具备幂等性。

二、新增,insert into user(userid,name) values(1,'a'),

如userid为唯一主键,即重复操作上面的业务,只会插入一条用户数据,具备幂等性。
如userid不是主键,可以重复,那上面业务多次操作,数据都会新增多条,不具备幂等性。
三、修改,区分直接赋值和计算赋值。

1、直接赋值,update user set point = 20 where
userid=1,不管执行多少次,point都一样,具备幂等性。
2、计算赋值,update user set point = point+ 20 where userid=1,每次操作point数据都不一样,不具备幂等性。

四、删除&

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值