mysql存儲過程怎樣抓取報錯信息?
問題描述
執行mysql存儲過程;怎樣像o/m數據庫抓取出報錯信息輸出到log表呢?mssql可以直接引用ERROR_MESSAGE()
查資料只能到查到有錯誤時賦值變量,應該至少可以抓到個error code啊
DECLARE t_error INT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
大家看看怎么實現
問題解答
回答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的流程控制好差勁!錯誤發生時經常抓取不到error,code直接賦值null,這樣判斷事物提交時被坑了一把;文檔里的抓取數據影響行數的功能沒測通,輸出結果始終是0,可能用法也不對吧,沒找到正確姿勢.
另外推薦個mysql存儲過程調試工具 dbForge Studio for MySQL使用時記得只在測試庫上debug,因為它會給存儲過程加代碼,在數據庫中新建存儲調試信息的庫.
相關文章:
1. docker 下面創建的IMAGE 他們的 ID 一樣?這個是怎么回事????2. 在應用配置文件 app.php 中找不到’route_check_cache’配置項3. html按鍵開關如何提交我想需要的值到數據庫4. css - width設置為100%之后列表無法居中5. ios - vue-cli開發項目webstrom會在stylus樣式報錯,飆紅,請大神幫忙6. javascript - 一個頁面有四個圖片,翻頁的時候想固定住某個圖片然后翻頁,如何實現呢?7. css3 - 怎么感覺用 rem 開發的不多啊8. html5 - 用Egret寫的小游戲,怎么分享到微信呢?9. python - 在pyqt中做微信的機器人,要在表格中顯示微信好友的名字,卻顯示不出來,怎么解決?10. objective-c - 自定義導航條為類似美團的搜索欄樣式
