Mysql存储过程中错误日志记录实现

本文介绍了如何在MySQL中为存储过程添加异常处理和日志记录功能。通过声明变量并设置默认值,创建日志表字段,然后在异常发生时进行回滚操作并记录错误信息。在存储过程的BEGIN和END之间声明变量,最后在事务提交前记录日志。文章还解释了CONTINUE和EXIT在异常处理中的区别,并提供了参考资料。
摘要由CSDN通过智能技术生成

本博客根据官方提供的信息,及查阅多个博客综合,且自己在环境中试验并验证方案可行。

接下来进入正题,我会尽力写的更通俗易懂一些。

第一步、建一张日志表,具体字段可以根据需求来设计,下图是我的参考

 以上字段按顺序分别是ID,存储过程名称,错误代码,错误描述,插入时间,间隔时间。

第二步、在存储过程中添加以上字段的变量

-- 日志记录参数
    DECLARE v_id VARCHAR(50);-- 日志表ID
    DECLARE v_name VARCHAR(50) DEFAULT 'PROC_IMPORTNEWCONTRACT_REAL'; -- 过程名称
    DECLARE v_code VARCHAR(10) DEFAULT '00000';-- 错误码
    DECLARE v_msg_text TEXT DEFAULT 'SUCCESS';-- 返回消息默认为SUCCESS
    DECLARE v_date DATETIME DEFAULT NOW();-- 插入时间默认当前时间
    DECLARE v_invatime DATETIME DEFAULT NOW();-- 间隔时间默认当前时间

以上代码是放在BEGIN下面的

最后一步、事务提交与日志记录

 

以上代码是放在BEGIN   END的END前面的,其中间的逻辑代码无需改变,如果你有特殊需求可以再改造。

参考资料:

上述的CONTINUE意思为sql发生异常时,为保证存储过程继续往下执行,执行ROLLBACK,进而执行日志记录的操作。如果将CONTINUE改为EXIT,则意为产生异常时,该存储过程会退出,无法执行日志记录的操作,因为该存储过程直接退出了。

RETURNED_SQLSTATE,返回报错代码,MESSAGE_TEXT返回报错具体信息,官方提供的信息里面是上面的写法。 

参考博客:Mysql异常捕获并记录_未名-CSDN博客

 

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我的小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值