现在学PHP还有前途吗?

聽雨人 发布于 2014/11/12 16:39
阅读 2K+
收藏 3

看来不换个标题是不行的了。

关于超卖,今天看到一句话,想不明白

以前处理库存,处理财务,我不是先在事务里select for update就是在update的时候update set num=num - xx where num>=xxx,然后判断update是否成功,来防止数值出现负数。

但是今天看到一段话,有点理解不了:
首先设定一个前提,为了防止超卖现象,所有减库存操作都需要进行一次减后检查,保证减完不能等于负数。(由于MySQL事务的特性,这种方法只能降低超卖的数量,但是不可能完全避免超卖) update number set x=x-1 where (x -1 ) >= 0;
mysql事务的什么特性导致这个呢?能分析一下吗?

以下是问题补充:

@聽雨人:我看到的话出自这里: http://www.cnblogs.com/billyxp/p/3701124.html (2014/11/12 16:43)
加载中
0
聽雨人
聽雨人
哈哈哈哈
0
回去干活
回去干活

事务是为了把一系列需求变成原子性.不过你说的这个超卖的情况跟表引擎有关.

目前我用我还没碰到这种变负数的情况.

不过你不想依赖事务的话,可以建两张表,主表的count字段用于显示,log表记录购买记录,每次购买的时候不要去用主表的count,直接求log表的count,这样会精确一些,然后定时任务更新log表的count到主表的count

0
yak
yak
osc应该惩罚标题党
0
张亦俊
张亦俊
你这!!实在是过分,我都想举报了
pantrick
pantrick
回复 @xia-yongsheng : 你节操掉了,
开源中国董事会主席
开源中国董事会主席
回复 @xia-yongsheng : 标题和内容,完全牛头不对马嘴的,还叫人家反思
聽雨人
聽雨人
反思一下你们自己吧,一看到这样的标题就鸡血,至于吗?
0
尛何
尛何

设置mysql的字段为Unsigned

聽雨人
聽雨人
这个回答太简短了。
0
3
3518543516
有点意思。。呵呵呵
0
你若安好
你若安好
PHP是世界上最好的语言 请继续
聽雨人
聽雨人
你这样是不行的,怎么可以这样说呢,必须把没有之一带上啊
0
甘薯
甘薯

我知道我知道,

可是我不告诉标题党...

聽雨人
聽雨人
回复 @笨咔 : 你知道他不知道,不过不是你知道他不知道。
要永远幸福
要永远幸福
回复 @xia-yongsheng : 你知道我知道你知道他也不知道
聽雨人
聽雨人
回复 @ZeroOne : 你不说怎么证明你知道呢?
甘薯
甘薯
回复 @xia-yongsheng : 嘿嘿 我真知道可是我确实不能说.要打击标题党的嚣张气焰啊,不行,坚决不说.
聽雨人
聽雨人
嗯,我知道你也不知道。
0
xialeistudio
xialeistudio
你要学得好,搬砖都能发财,你要学的差,让你用C++也只能温饱
xialeistudio
xialeistudio
回复 @onbgamephp : 因为你是标题党
聽雨人
聽雨人
回复 @onbgamephp : 。。。只看标题的孩子。。。
C
CsharpGame
+1
返回顶部
顶部