mysql存儲(chǔ)過(guò)程怎樣抓取報(bào)錯(cuò)信息?
問(wèn)題描述
執(zhí)行mysql存儲(chǔ)過(guò)程;怎樣像o/m數(shù)據(jù)庫(kù)抓取出報(bào)錯(cuò)信息輸出到log表呢?mssql可以直接引用ERROR_MESSAGE()
查資料只能到查到有錯(cuò)誤時(shí)賦值變量,應(yīng)該至少可以抓到個(gè)error code啊
DECLARE t_error INT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error = 1;
大家看看怎么實(shí)現(xiàn)
問(wè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;
/開(kāi)始事物/ start transaction;
回答2:弄了一下午終于搞定;不得不說(shuō)mysql的流程控制好差勁!錯(cuò)誤發(fā)生時(shí)經(jīng)常抓取不到error,code直接賦值null,這樣判斷事物提交時(shí)被坑了一把;文檔里的抓取數(shù)據(jù)影響行數(shù)的功能沒(méi)測(cè)通,輸出結(jié)果始終是0,可能用法也不對(duì)吧,沒(méi)找到正確姿勢(shì).
另外推薦個(gè)mysql存儲(chǔ)過(guò)程調(diào)試工具 dbForge Studio for MySQL使用時(shí)記得只在測(cè)試庫(kù)上debug,因?yàn)樗鼤?huì)給存儲(chǔ)過(guò)程加代碼,在數(shù)據(jù)庫(kù)中新建存儲(chǔ)調(diào)試信息的庫(kù).
相關(guān)文章:
1. 我在centos容器里安裝docker,也就是在容器里安裝容器,報(bào)錯(cuò)了?2. 在windows下安裝docker Toolbox 啟動(dòng)Docker Quickstart Terminal 失敗!3. docker-compose中volumes的問(wèn)題4. docker不顯示端口映射呢?5. golang - 用IDE看docker源碼時(shí)的小問(wèn)題6. docker內(nèi)創(chuàng)建jenkins訪(fǎng)問(wèn)另一個(gè)容器下的服務(wù)器問(wèn)題7. 關(guān)docker hub上有些鏡像的tag被標(biāo)記““This image has vulnerabilities””8. javascript - 最近用echarts做統(tǒng)計(jì)圖時(shí)遇到兩個(gè)問(wèn)題!!9. javascript - 連續(xù)點(diǎn)擊觸發(fā)mouseleave事件10. mac里的docker如何命令行開(kāi)啟呢?

網(wǎng)公網(wǎng)安備