mysql實(shí)現(xiàn)事務(wù)的提交和回滾實(shí)例
mysql創(chuàng)建存儲(chǔ)過(guò)程的官方語(yǔ)法為:
START TRANSACTION | BEGIN [WORK]
COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
ROLLBACK [WORK] [AND [NO] CHAIN] [[NO] RELEASE]
SET AUTOCOMMIT = {0 | 1}
我這里要說(shuō)明的mysql事務(wù)處理多個(gè)SQL語(yǔ)句的回滾情況。比如說(shuō)在一個(gè)存儲(chǔ)過(guò)程中啟動(dòng)一個(gè)事務(wù),這個(gè)事務(wù)同時(shí)往三個(gè)表中插入數(shù)據(jù),每插完一張表需要判斷其是否操作成功,如果不成功則需要回滾,最后一張表判斷其插入成功之后commit。這里需要注意的是不能直接使用事務(wù)的collback,這樣是不能實(shí)現(xiàn)回滾的或者說(shuō)可能出現(xiàn)意外的錯(cuò)誤。
那么我們需要的是一個(gè)條件判斷,比如loop,因?yàn)镸ySql默認(rèn)是會(huì)自動(dòng)提交的,所以我們不用擔(dān)心rollback之后條件退出而沒(méi)有commit。
具體mysql語(yǔ)句如下:
begin
loop_lable: loop
start transaction;
insert into table1(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
end if;
insert into table2(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
end if;
insert into table3(f_user_id) values(user_id);
if row_count() < 1 then
set @ret = -1;
rollback;
leave loop_label;
else
set @ret = 0;
commit;
leave loop_label;
end if;
end loop;
select @ret;
end
相關(guān)文章
MySQL 鎖的相關(guān)知識(shí)總結(jié)
這篇文章主要介紹了MySQL 鎖的相關(guān)知識(shí)總結(jié),幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2021-01-01
MySQL字符串轉(zhuǎn)數(shù)字的3種方式實(shí)例
這篇文章主要給大家介紹了關(guān)于MySQL字符串轉(zhuǎn)數(shù)字的3種方式,在使用mysql中經(jīng)常遇到要將字符串?dāng)?shù)字轉(zhuǎn)換成可計(jì)算數(shù)字,文中給出了詳細(xì)的代碼示例和圖文介紹,需要的朋友可以參考下2023-08-08
mysql默認(rèn)編碼為UTF-8 通過(guò)修改my.ini實(shí)現(xiàn)方法
這篇文章主要介紹了mysql默認(rèn)編碼為UTF-8 通過(guò)修改my.ini實(shí)現(xiàn)方法的相關(guān)資料,為了防止出現(xiàn)亂碼,Latin1是不支持漢字的,所以要將其改為UTF-8或GBK,需要的朋友可以參考下2017-01-01
Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)多字段過(guò)濾的方法
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)實(shí)現(xiàn)多字段過(guò)濾的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07
Mysql ID生成策略的三種方法選擇及優(yōu)缺點(diǎn)
mysql ID生成策略一般常用的有三種,包括自增、UUID 以及雪花算法,本文主要介紹了Mysql ID生成策略的三種方法選擇及優(yōu)缺點(diǎn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
MySQLBackup備份數(shù)據(jù)庫(kù)的操作過(guò)程
這篇文章主要介紹了MySQLBackup備份數(shù)據(jù)庫(kù)的操作過(guò)程,包括安裝部署和配置備份管理員的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-03-03

