首页 > 代码库 > 有三个人要下载同一条数据,但是数据只能被一个人下载到的解决方法
有三个人要下载同一条数据,但是数据只能被一个人下载到的解决方法
背景:
A B C 三人同时下载一条数据,但是数据只能被第一个人下载到,第二个人、第三个人不能下载该条数据。 怎么处理?
解决方案:
数据库中有一个voucher表,表示的含义是“凭证”,
voucher里面增加business_type字段,默认为0。
当voucher被下载之后,business_type由0变为1。
将下载条件强制定为:where business_type=0
这样就ok了。
sql语句预览:
我们要下载voucher表中的voucher_id=1001的数据
update voucher
set business_type = 1
where business_type = 0 and voucher_id = 1001;
这句话的意思是:我们先搜索id为1001且标志位是0的数据,如果找到了,则下载,下载完成后将标志位置为1。
评价:(这个是我自己想的,可能不对不全面)
这个只是一条很简单的sql语句,轻便,容易理解。
但是它并不能保证一定有一个人下载到了这条数据,即:如果下载出错了,也更新了字段怎么办? 你可以写一个事物,来保证执行。执行出错会回滚。这样就会有第二次的下载了。
有三个人要下载同一条数据,但是数据只能被一个人下载到的解决方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。