mysql異常處理以及遊標的使用

mysql異常處理以及遊標的使用

mysql異常處理語法

–mysql存儲過程如下

BEGIN

declare ids VARCHAR(20); – 聲明一個id 保存遊標查詢出的參數
declare don int default 1; – 聲明判斷遊標是否未查詢到數據
DECLARE tcur CURSOR for select id from dt_org ; – 聲明遊標
DECLARE tcur1 CURSOR for select org_code from dt_org ; – 聲明遊標
– 聲明異常 continue代表出現錯誤後接着向下執行 也可用用exit替換,exit代表出現異常則停止向下執行
not found代表遊標未獲取到數據異常
sqlexception 代表sql等一系列異常比如;主鍵衝突 外鍵引用無法刪除等異常
SQLWARNING 代表sql警告
sqlstatecode 可用用sqlcode來捕獲異常
declare continue handler for not found
BEGIN
– 處理異常,將don設置爲0 後續根據判斷是否爲0來判斷是否有數據
set don =0;
– 可用insert錯誤日誌到錯誤日誌表中
select ‘出現錯誤了爲查到數據’ a from dt_agent_info where id=‘898000000000043’;
end;

– 打開遊標
open tcur;
– 抓取遊標 如果未查詢到數據 則會執行not found異常處理裏面邏輯
fetch tcur into ids ;
– 如果不加當前判斷,出現錯誤後依然會執行 if判斷之後的代碼 加上之後則不會執行
if(don<>0) then
select ids from dt_agent_info ;
end if;
– 關閉遊標
close tcur;

select ‘執行到此處’ from dt_agent_info where id=‘898000000000043’;

open tcur1;

fetch tcur1 into ids ;
– 如果未查詢到相應遊標數據,則下面一行select代碼會執行,抓取的ids字段爲null
select ids from dt_agent_info ;

close tcur1;

END

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章