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. python中return 语句与 分支语句连用问题2. thinkphp3 count()方法必须加上字段?3. node.js - webpack-dev-server正常运行,webpack打包却出错,怎么办?4. 我何时应该在Java中使用JFrame.add(component)和JFrame.getContentPane()。add(component)5. 这是什么情况???6. javascript - 项目的公共文件如图片JS等文件放在 云上,webroot只放jsp文件,怎么将静态文件通过配置文件引入,sp求大神指导7. android - 哪位大神知道java后台的api接口的对象传到前端后输入日期报错,是什么情况?求大神指点8. 怎么php怎么通过数组显示sql查询结果呢,查询结果有多条,如图。我要forsearch里面echo9. nginx 504 Gateway Time-out 请问如何设置10. update方法不能更新字段值为0的数据
