《Mysql應(yīng)用在Mysql存儲(chǔ)過(guò)程中使用事務(wù)實(shí)例》要點(diǎn):
本文介紹了Mysql應(yīng)用在Mysql存儲(chǔ)過(guò)程中使用事務(wù)實(shí)例,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
??? declare err INT default 0;#聲明一個(gè)整形變量err,默認(rèn)值是0
??? declare continue handler for sqlexception set err=1;#當(dāng)sqlexception handler捕捉到異常時(shí),設(shè)置err=1
??? START TRANSACTION;#開(kāi)始事務(wù)MYSQL教程
??? WHILE flag>0 DO #注意: while不能空實(shí)現(xiàn)(在while塊中,里面必須有語(yǔ)句)MYSQL教程
??????? #uuid()函數(shù)得到的字符串是'6ccd780c-baba-1026-9564-0040f4311e29',剔除里面的-,得到一個(gè)32位的字符串
??????? SET uuidStr = REPLACE(UUID(),'-','') ;
??????? #得到當(dāng)前的時(shí)間
??????? SET currentTime = CURRENT_TIMESTAMP();
??????? #執(zhí)行插入語(yǔ)句,注意連接字符串的函數(shù)concat(str1,str2,...);其中str..也可以是數(shù)字類(lèi)型
??????? INSERT INTO
??????????????????????????????? 表名稱(chēng)
??????????????????????????????? (id,title,keyword,hasImage,isTodayHead,isShowInHome,isBigness,publishTime,originId,modify_time,isAnalysis)
???????????????????? VALUE
??????????????????????????????? (uuidStr,CONCAT('事件標(biāo)題',flag),CONCAT('關(guān)鍵字',flag),1,1,0,0,currentTime,CONCAT('xxxxxxx',flag),currentTime,1);
??????? #每循環(huán)一次,flag要減去1,注意沒(méi)有flag--的語(yǔ)法
??????? set flag = flag-1;MYSQL教程
??????? #在這里測(cè)試當(dāng)err=1時(shí),事務(wù)是否有了回滾,測(cè)試ok
??????? #IF flag=7 THEN?? #注意在procedure中給變量賦值要用到set,或在變量聲明時(shí)用default來(lái)父子,所以=號(hào)可以用來(lái)比較兩邊的值是否相等,<=>也可,區(qū)別先不去糾結(jié).
??????????????? #set err=1;
??????? #END if;
??? END WHILE;
??? IF (err=0) THEN
??????? commit;
??????? select 'OK';
???? ELSE
??????? rollback;
??????? select 'err';
???? END IF;MYSQL教程
END;
MYSQL教程
歡迎參與《Mysql應(yīng)用在Mysql存儲(chǔ)過(guò)程中使用事務(wù)實(shí)例》討論,分享您的想法,維易PHP學(xué)院為您提供專(zhuān)業(yè)教程。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/13963.html