mySql中是否能有SQLserver的@@error變量呢,或者如c#中的try catch語(yǔ)法呢。 MySQL 捕獲異常 /**mySql中是否能有SQLserver的@@error變量呢,或者如c#中的try catch語(yǔ)法呢。答案是肯定的,實(shí)例代碼如下:**/CodeDROP PROCEDURE IF EXISTS sp_call_jobs;CREATE
mySql中是否能有SQLserver的@@error變量呢,或者如c#中的try catch語(yǔ)法呢。 MySQL 捕獲異常 $velocityCount-->/**mySql中是否能有SQLserver的@@error變量呢,或者如c#中的try catch語(yǔ)法呢。 答案是肯定的,實(shí)例代碼如下:**/ Code DROP PROCEDURE IF EXISTS sp_call_jobs; CREATE PROCEDURE sp_call_jobs() NOT DETERMINISTIC SQL SECURITY DEFINER COMMENT '' BEGIN declare _row,_err,_count int default 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1; while _row<3 DO START TRANSACTION; insert into t1(cond_val)values(null); COMMIT; if _err=1 then set _count=_count+1; end if; set _row=_row+1; end while; select _count; END; /**語(yǔ)句: DECLARE CONTINUE HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND set _err=1; 作用是當(dāng)遇到SQLEXCEPTION,SQLWARNING,NOT FOUND 錯(cuò)誤時(shí),設(shè)置_err=1并執(zhí)行CONTINUE操作,即繼續(xù)執(zhí)行后面的語(yǔ)句。 這就與c#中的try catch語(yǔ)法很像。 而且在執(zhí)行可能出錯(cuò)的語(yǔ)句的時(shí)候我們用事務(wù)語(yǔ)句:START TRANSACTION; …… COMMIT; 可以保證完整性。 **/
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com