是这样的,我在程序里关闭了自动提交,然后当两个update语句完成之后,还没有commit
这个时候我拔了我的网线,然后让程序继续运行,然后出错后发现mysql的那句update一直处于等待执行的状态我想问的是,像这种情况,除了手动杀掉被锁的语句,还有没有其他办法?
这种程序应该是处理不了的吧?那么有没有什么设置可以让mysql过一段时间,比如10秒自动把锁释放呢?
这个时候我拔了我的网线,然后让程序继续运行,然后出错后发现mysql的那句update一直处于等待执行的状态我想问的是,像这种情况,除了手动杀掉被锁的语句,还有没有其他办法?
这种程序应该是处理不了的吧?那么有没有什么设置可以让mysql过一段时间,比如10秒自动把锁释放呢?
解决方案 »
- 交叉编译mysql的问题
- 从.myd.myi.frm 导入的表,提示was created with a different version of MySQL and cannot be
- id如何输入
- mysql limit 动态赋值问题
- 听说MYSQL是开放源码的,什么地方可以下?
- mysql-front问题
- mysql 频繁的1226怎么办
- 高分104,求:asp+mysql的简单小程序(包括删除,添加,更新功能)
- mysql分割查询的求助
- MySQL用"插入唯一索引异常"代替“检索+插入” ,这种方式优缺点?!
- 不同版本的mysql对内存 cpu 以及 单个的表的限制值
- sql management studio for mysql 2010注册码?
结束此进程。
2:然后当两个update语句完成之后,还没有commit 。。 现mysql的那句update一直处于等待执行的状态
既然都完成了,为何还有处于等待状态?
1, 尽量让一个transaction足够短, 避免在一个transaction中间有交互动作
2, 程序里要有kill process的模块, 让客户自己解决这问题
3, MYSQL/INNODB里有lock-xxx--timeout参数, 可以设置锁表最多分钟, 超过这个值, 会自动rollback.