mysql存儲過程怎樣抓取報錯信息?
問題描述
執(zhí)行mysql存儲過程;怎樣像o/m數(shù)據(jù)庫抓取出報錯信息輸出到log表呢?mssql可以直接引用ERROR_MESSAGE()
查資料只能到查到有錯誤時賦值變量,應(yīng)該至少可以抓到個error code啊
DECLARE t_error INT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
大家看看怎么實(shí)現(xiàn)
問題解答
回答1:declare exit handler for sqlexception
BEGIN rollback;#或者看自己需求 GET DIAGNOSTICS CONDITION 1 # dev.mysql.com/doc/refman/5.7/en/get-diagnostics.html@p2 = MESSAGE_TEXT; insert into tbl_log_info (SINFO,STYPE,STEMP,srun_info) values(’proc_’,’proc_’,’action’,@p2); commit;END;
/開始事物/ start transaction;
回答2:弄了一下午終于搞定;不得不說mysql的流程控制好差勁!錯誤發(fā)生時經(jīng)常抓取不到error,code直接賦值null,這樣判斷事物提交時被坑了一把;文檔里的抓取數(shù)據(jù)影響行數(shù)的功能沒測通,輸出結(jié)果始終是0,可能用法也不對吧,沒找到正確姿勢.
另外推薦個mysql存儲過程調(diào)試工具 dbForge Studio for MySQL使用時記得只在測試庫上debug,因?yàn)樗鼤o存儲過程加代碼,在數(shù)據(jù)庫中新建存儲調(diào)試信息的庫.
相關(guān)文章:
1. Java反射問題:為什么android.os.Message的recycleUnchecked方法不能通過反射獲取到?2. html5和Flash對抗是什么情況?3. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發(fā)現(xiàn)4. javascript - vue-resource中如何設(shè)置全局的timeout?5. 如何分別在Windows下用Winform項(xiàng)模板+C#,在MacOSX下用Cocos Application項(xiàng)目模板+Objective-C實(shí)現(xiàn)一個制作游戲的空的黑窗口?6. javascript - 在 vue里面用import引入js文件,結(jié)果為undefined7. 前端 - node vue webpack項(xiàng)目文件結(jié)構(gòu)8. php如何獲取訪問者路由器的mac地址9. php - 微信開發(fā)驗(yàn)證服務(wù)器有效性10. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙
