程序的并发性控制
各位好,小弟最近碰到一个问题.用户A和B同时打开页面后,用户A把记录a的状态从0改成1.然后用户B要修改的时候,他的状态已经不是0了.希望大虾们不吝赐教! --------------------编程问答-------------------- 这种方式一般采用乐观锁进行处理。也就是说,这条数据所在的数据表增加一个 VERSION 的字段,在每 UPDATE 时将其中的值加 1,这样去更新:
UPDATE test t
SET t.a = 'aaa',
t.b = 'bbb',
t.version = t.version + 1
WHERE t.id = 11111
AND t.version = 0
在更新时再加一个条件(VERSION 条件可以从 SELECT 中取出放到页面上)和更新 SET,如果 UPDATE 返回影响的行数小于 1 的话,表示更新没有成功,可以提示用户类似于刷新后再次尝试之类的。
补充:.NET技术 , 非技术区