mysql發(fā)生錯(cuò)誤的處理方法:1、如果發(fā)生1062錯(cuò)誤,執(zhí)行select語句;2、SQL選擇語句沒有返回值時(shí),設(shè)置【l_done=1】后繼續(xù)執(zhí)行;3、產(chǎn)生錯(cuò)誤消息后退出當(dāng)前塊或存儲(chǔ)過程;4、如果任何錯(cuò)誤,設(shè)置【l_error】為1后執(zhí)行。
mysql發(fā)生錯(cuò)誤的處理方法:
1、如果任何錯(cuò)誤(不是 NOT FOUND ) , 設(shè)置 l_error 為 1 后繼續(xù)執(zhí)行:
DECLARE?CONTINUE?HANDLER?FOR?SQLEXCEPTION SET?l_error=1;
2、如果發(fā)生任何錯(cuò)誤(不是 NOT FOUND), 執(zhí)行 ROLLBACK和產(chǎn)生一條錯(cuò)誤消息后退出當(dāng)前塊或存儲(chǔ)過程。
DECLARE?EXIT?HANDLER?FOR?SQLEXCEPTION BEGIN ROLLBACK; SELECT?'Error?occurred?–?terminating'; END;
3、如果 MySQL 1062錯(cuò)誤 (重復(fù)的健值 )發(fā)生,執(zhí)行 SELECT語句(向調(diào)用程序發(fā)一條消息)后繼續(xù)執(zhí)行
DECLARE?CONTINUE?HANDER?FOR?1062 SELECT?'Duplicate?key?in?index';
4、如果 SQLSTATE 2300錯(cuò)誤 (重復(fù)的健值 )發(fā)生,執(zhí)行 SELECT語句(向調(diào)用程序發(fā)一條消息)后繼續(xù)執(zhí)行
DECLARE?CONTINUE?HANDER?FOR?SQLSTATE?'23000' SELECT?'Duplicate?key?in?index';
5、當(dāng)游標(biāo)或者 SQL 選擇語句沒有返回值時(shí),設(shè)置 l_done=1 后繼續(xù)執(zhí)行
DECLARE?CONTINUE?HANDLER?FOR?NOT FOUND SET?l_done=1;
6、此例除了用 SQLSTATE 變量而不是命名條件以外,跟前一個(gè)例子一樣
DECLARE?CONTINUE?HANDLER?FOR?SQLSTATE?'02000?' SET?l_done=1;
7、此例除了用 MySQL 的錯(cuò)誤碼變量而不是命名條件或者 SQLSTATE 變量以外,跟前兩個(gè)例子一樣
DECLARE?CONTINUE?HANDLER?FOR?1329 SET?l_done=1;
更多相關(guān)免費(fèi)學(xué)習(xí)推薦:mysql教程(視頻)