鍍金池/ 問答/數(shù)據(jù)庫(kù)/ mysql 多條語句,怎么判斷如果其中一條執(zhí)行錯(cuò)誤,就執(zhí)行回滾

mysql 多條語句,怎么判斷如果其中一條執(zhí)行錯(cuò)誤,就執(zhí)行回滾

mysql 多條語句,怎么判斷如果其中一條執(zhí)行錯(cuò)誤,就執(zhí)行回滾圖片描述

如圖片。

求大神解答。在下萬分感激。
另外,希望是純sql語句。 不要靠其他語言來做判斷然后在處理。因?yàn)槲沂怯胣odejs來做的,nodejs是屬于異步的。
比如說: 有 (A程序) 和 ( 異步A程序 )。 (A程序)執(zhí)行了第一條語句,正在做判斷的時(shí)候,突然殺出了 (異步A程序),然后(異步A程序)也執(zhí)行了一條語句,不過這時(shí)候,(A程序)判斷到,不行!我要回滾,執(zhí)行了rollback。 結(jié)果。 (異步A程序)他躺著也中槍,我執(zhí)行了語句你把我的回滾的。

所以,為了(異步A程序)不要在抱怨下去了。希望大家能夠提供一下純sql的語句。 我替(異步A程序)謝謝大家了

回答
編輯回答
絯孑氣

1.update語句有種配置方式(useAffectedRows=true)可以返回影響的記錄數(shù)
2.如果步驟1不好用,能不能以再次查詢的方式進(jìn)行驗(yàn)證

沒用過nodejs,不太確定你具體的使用方式

2018年9月9日 13:11
編輯回答
舊酒館

定義一個(gè)變量
declare rowcount tinyint default 0;
在你需要對(duì)update語句判斷的后面寫
select row_count into rowcount;
if rowcount = 0 then
rollback;
else
commit;
end if;
如果出現(xiàn)錯(cuò)誤,可以根據(jù)sql errono來判斷是不是要rollback

歡迎加群交流Java技術(shù):696883318

2017年2月8日 13:33
編輯回答
硬扛

把 ==失敗 去掉應(yīng)該就可以了吧,if(update) 也就是update執(zhí)行成功就會(huì)走if

2017年9月21日 09:17
編輯回答
墨小白

把那句sql語句抽出來用一個(gè)變量接受它,然后判斷:例 if($res === false) rollback;

2018年7月29日 23:48