ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » MySQL及其它开源数据库 » mysql事务失败问题求救

标题: [原创] mysql事务失败问题求救
离线 xugang9804
初级会员



精华贴数 0
个人空间 0
技术积分 28 (42227)
社区积分 0 (291600)
注册日期 2005-3-2
论坛徽章:0
      
      

发表于 2008-6-13 12:59 
mysql事务失败问题求救

请教一问题,我用php写了段脚本,数据库是mysql5.0,涉及到的表都是innodb类型,大致逻辑结构如下:
start transaction
if tableA.f1==0 then
begin
   update tableA.f1=1
   ......
   还有其他一些 select update insert sql 语句
end;
commit

简单说,这个事务不是很大,涉及的表就两三个,一些查询修改插入等操作,实际运行的时候,偶尔会发生貌视并发隔离失败的问题,按照这段程序逻辑,只有当f1为0才执行以下操作,发生并发时经常执行两次,insert语句产生两条记录,更多并发暂时没遇到过,我想可能是我的事务处理没做好,麻烦各位帮我看一下上面这段逻辑,是不是真的有问题,谢谢。事务隔离级别以及autocommit都是默认值


只看该作者    顶部
离线 jinguanding
Eugene


来自 上海
精华贴数 1
个人空间 70
技术积分 2399 (654)
社区积分 79 (3919)
注册日期 2007-3-29
论坛徽章:5
现任管理团队成员2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:柔道生肖徽章2007版:鼠ITPUB新首页上线纪念徽章 
      

发表于 2008-6-13 13:42 


QUOTE:
原帖由 xugang9804 于 2008-6-13 12:59 发表
请教一问题,我用php写了段脚本,数据库是mysql5.0,涉及到的表都是innodb类型,大致逻辑结构如下:
start transaction
if tableA.f1==0 then
begin
   update tableA.f1=1
   ......
   还有其他一些 select update insert sql 语句
end;
commit

简单说,这个事务不是很大,涉及的表就两三个,一些查询修改插入等操作,实际运行的时候,偶尔会发生貌视并发隔离失败的问题,按照这段程序逻辑,只有当f1为0才执行以下操作,发生并发时经常执行两次,insert语句产生两条记录,更多并发暂时没遇到过,我想可能是我的事务处理没做好,麻烦各位帮我看一下上面这段逻辑,是不是真的有问题,谢谢。事务隔离级别以及autocommit都是默认值

你这写的代码不是mysql里的语法结构,是在其他程序语言中写的吧,你可以考虑改为调用存储过程方式

我曾帮一家游戏公司写的,测试的时候使用20个客户端模拟,连续各自执行大概1W次流程,没发现你所说的问题,我的隔离级别也是使用默认的,因为默认就能满足我的要求,版本是5.0.27


__________________
.....做人做事尽心尽力,做学问谦虚求根问底.......
......***寻MySQL方面的兼职***......
.....专业的综合布线、安防公司........................
......www.showgold.cn..............................
......上海亮金信息技术有限公司.......................
只看该作者    顶部
离线 xugang9804
初级会员



精华贴数 0
个人空间 0
技术积分 28 (42227)
社区积分 0 (291600)
注册日期 2005-3-2
论坛徽章:0
      
      

发表于 2008-6-13 14:29 
是的,是伪代码,就是表达一下大致的程序结构,可能真要考虑用过程了


只看该作者    顶部
离线 atgc
高级会员


精华贴数 1
个人空间 0
技术积分 7947 (157)
社区积分 168 (2586)
注册日期 2004-7-22
论坛徽章:35
生肖徽章2007版:龙2008北京奥运纪念徽章:射箭2008北京奥运纪念徽章:蹦床2008北京奥运纪念徽章:跳水2008北京奥运纪念徽章:举重2008北京奥运纪念徽章:排球
2008北京奥运纪念徽章:花样游泳2008北京奥运纪念徽章:垒球2008北京奥运纪念徽章:手球2008北京奥运纪念徽章:帆船2008北京奥运纪念徽章:羽毛球生肖徽章2007版:鼠

发表于 2008-6-13 17:08 
update的时候加where条件不就行了?


__________________
只看该作者    顶部
离线 bailiu2002
初级会员



精华贴数 0
个人空间 0
技术积分 141 (12674)
社区积分 0 (1317152)
注册日期 2007-3-25
论坛徽章:1
2008北京奥运纪念徽章:皮划艇激流回旋     
      

发表于 2008-6-14 22:18 
往里面加些變量并做一些處理 跟蹤變量 看變量在什么地方和你預期的不一樣


__________________
多情自古伤离别,更那堪冷落清秋节!

今宵酒醒何处?燈火街頭,冷風殘月。
-------------------------------------------
Nothing should be taken for granted.
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问