码迷,mamicode.com
首页 > 其他好文 > 详细

有三个人要下载同一条数据,但是数据只能被一个人下载到的解决方法

时间:2017-04-12 11:36:46      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:不能   bsp   数据库   条件   怎么办   自己   位置   个人   回滚   

背景:

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语句,轻便,容易理解。

但是它并不能保证一定有一个人下载到了这条数据,即:如果下载出错了,也更新了字段怎么办? 你可以写一个事物,来保证执行。执行出错会回滚。这样就会有第二次的下载了。

 

有三个人要下载同一条数据,但是数据只能被一个人下载到的解决方法

标签:不能   bsp   数据库   条件   怎么办   自己   位置   个人   回滚   

原文地址:http://www.cnblogs.com/donefive/p/6697948.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!