多线程 并发问题

情况是有两台服务器同时运行程序,然后是一个抽奖程序,奖品的数量是有限制的(每一种奖品每天发放多少,一共发放多少都是有数的超过就不在发放,剩下的概率为零).
1.怎么样避免数据重复插入
2.怎样避免多发或者少发

因为以前出现过类似的情况,本人初学,能力有限,所以希望有一个好的解决办法?请帮忙梳理一下流程

德玛西亚99
浏览 554回答 7
7回答

慕沐林林

update 表名 set 数量字段-=1 where 商品id=id and 数量字段>0 返回影响行数为1则发放成功.为0则失败.

梵蒂冈之花

给数据库记录增加时间戳,更新的时候,带上时间戳条件。如果中途有人更新过,那么你会更新失败。

一只甜甜圈

 我的数据库设计是有一个奖品表,表中有奖品名称,等级,一共发放数量,每天发放数量,已经中奖的数量,还有一个抽奖记录表,所有的数据都记录,如果抽中奖品就更新奖品表中的中奖数量,如果中奖数量大于等于每天发放数量就不在发放,概率就为零了.所以感觉不适用啊

江户川乱折腾

@tanhao09: 是指你在查询数量和提交更改后的数量之前,没有其他人操作(保证数量是准确的)。

慕村9548890

你的问题是 两个客户端,访问同一个数据库,两个客户端同时增删改查,有可能造成一个数据同时进行操作的问题?

陪伴而非守候

对,是这样的
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java