+ -
当前位置:首页 → 问答吧 → 如何解决update并发导致的错误数据

如何解决update并发导致的错误数据

时间:2011-11-24

来源:互联网

我这里一张表记录人物的访问日志A表
rid 日志ID
pid 用户id
cid 公司ID
act 动作(0登陆 1操作A)
人物行为日志B表
did 操作ID
cid 公司ID
pid 用户ID
a0 登陆的次数
a1 操作A的次数
现在我是在插入A表的时候,用触发器去更新B表
if(act=0)
begin
update a0=a0+1 where cid =@cid and pid =@pid 
end
else if(act=1)
update a1=a1+1 where cid =@cid and pid =@pid 
end
但是数据经常不准 a0 a1的值都比日志表直接统计多好多
注:同一个公司的同一个用户是会有很多人同时登陆或者使用的

作者: New_live   发布时间: 2011-11-24

并发了?

作者: ssp2009   发布时间: 2011-11-24

并发的很厉害

作者: New_live   发布时间: 2011-11-24

怎么样解决并发问题啊,一天千万级的日志数据

作者: New_live   发布时间: 2011-11-24

最好把語句貼完整,
你貼出來的語法都有問題
update a0=a0+1

作者: roy_88   发布时间: 2011-11-24

登录和操作,你都会加一,就是说记录次数已经是实际次数两倍了,你怎么统计的。。。

作者: ssp2009   发布时间: 2011-11-24

无法重现楼主的问题,

不如不要用触发器, 把insert和update放在一个事务里,

要么全做,要么全不做.

作者: ap0405140   发布时间: 2011-11-24

并发操作的问题。

作者: lzd_83   发布时间: 2011-11-24