关于网友提出的“ mysql 多条语句,怎么判断如果其中一条执行错误,就执行回滚”问题疑问,本网通过在网上对“ mysql 多条语句,怎么判断如果其中一条执行错误,就执行回滚”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: mysql 多条语句,怎么判断如果其中一条执行错误,就执行回滚
描述:mysql 多条语句,怎么判断如果其中一条执行错误,就执行回滚
如图片。
求大神解答。在下万分感激。
另外,希望是纯sql语句。 不要靠其他语言来做判断然后在处理。因为我是用nodejs来做的,nodejs是属于异步的。
比如说: 有 (A程序) 和 ( 异步A程序 )。 (A程序)执行了第一条语句,正在做判断的时候,突然杀出了 (异步A程序),然后(异步A程序)也执行了一条语句,不过这时候,(A程序)判断到,不行!我要回滚,执行了rollback。 结果。 (异步A程序)他躺着也中枪,我执行了语句你把我的回滚的。
所以,为了(异步A程序)不要在抱怨下去了。希望大家能够提供一下纯sql的语句。 我替(异步A程序)谢谢大家了
解决方案1:定义一个变量
declare rowcount tinyint default 0;
在你需要对update语句判断的后面写
select row_count into rowcount;
if rowcount = 0 then
rollback;
else
commit;
end if;
如果出现错误,可以根据sql errono来判断是不是要rollback
欢迎加群交流Java技术:696883318
解决方案2:把那句sql语句抽出来用一个变量接受它,然后判断:例 if($res === false) rollback;
解决方案3:1.update语句有种配置方式(useAffectedRows=true
)可以返回影响的记录数
2.如果步骤1不好用,能不能以再次查询的方式进行验证
没用过nodejs,不太确定你具体的使用方式
解决方案4:把 ==失败 去掉应该就可以了吧,if(update) 也就是update执行成功就会走if
以上介绍了“ mysql 多条语句,怎么判断如果其中一条执行错误,就执行回滚”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/4536726.html