位置: 编程技术 - 正文

mysql存储过程中的异常处理解析(mysql8.0存储过程)

编辑:rootadmin

推荐整理分享mysql存储过程中的异常处理解析(mysql8.0存储过程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql存储过程语句,mysql存储过程cursor,mysql 存储过程存放在哪里,Mysql存储过程中的如何遍历一个查询结果集,mysql存储过程中调用存储过程,Mysql存储过程中可以用子查询吗,mysql存储过程cursor,mysql存储过程中调用存储过程,内容如对您有帮助,希望把文章链接给更多的朋友!

定义异常捕获类型及处理方法:

这里面需要注意几点:

a、condition_value [,condition_value],这个的话说明可以包括多种情况(方括弧表示可选的),也就是一个handler可以定义成针对多种情况进行相应的 操作;另外condition_value可以包括的值有上面列出来的6种:

1、mysql_error_code,这个表示mysql的错误代码,错误代码是一个数字,完成是由mysql自己定义的,这个值可以参考mysql数据库错误代码及信息。

2、SQLSTATE [VALUE] sqlstate_value,这个同错误代码类似形成一一对应的关系,它是一个5个字符组成的字符串,关键的地方是它从ANSI SQL和ODBC这些标准中引用过来的,因此更加标准化,而不像上面的error_code完全是mysql自己定义给自己用的,这个和第一个类似也可以 参考mysql数据库错误代码及信息。

3、condtion_name,这个是条件名称,它使用DECLARE...CONDITION语句来定义,这个后面我们会介绍如何定义自己的condition_name。

4、SQLWARNING,表示SQLTATE中的字符串以‘'起始的那些错误,比如Error: SQLSTATE: (ER_SP_UNINIT_VAR)

5、NOT FOUND,表示SQLTATE中的字符串以‘'起始的那些错误,比如Error: SQLSTATE: (ER_SP_FETCH_NO_DATA)

6、SQLEXCEPTION,表示SQLSTATE中的字符串不是以''、''、'' 起始的那些错误,这里''起始的SQLSTATE其实表示的是成功执行而不是错误,另外两个就是上面的4和5的两种情况。

mysql存储过程中的异常处理解析(mysql8.0存储过程)

上面的6种情况其实可以分为两类:

一类就是比较明确的处理,就是对指定的错误情况进行处理,包括1、2、3这三种方式;

另一类是对对应类型的错误的 处理,就是对某一群错误的处理,包括4、5、6这三种方式。这个是介绍了condition_value。另外还要注意的一个内容是MySQL在默认情况 下(也就是我们没有定义处理错误的方法-handler)自己的错误处理机制:

1、对于SQLWARNING和NOT FOUND的处理方法就是无视错误继续执行,所以在游标的例子里面如果我们没有对repeat的条件判断的那个值做个no_more_products=1的handler来处理,那么循环就会一直下去。

2、对于SQLEXCEPTION的话,其默认的处理方法是在出现错误的地方就终止掉了。

b、statement,这个比较简单就是当出现某种条件/错误时,我们要执行的语句,可以是简单的如 SET var = value这样的简单的语句,也可以是复杂的多行的语句,多行的话可以使用BEGIN ..... END这里把语句包括在里面(这个好比delphi里面的情况,注意到我们的存储过程也是多行的,所以也要BEGIN .... END)。

c、handler_action,这个表示当执行完上面的statement后,希望执行怎样的动作,这里包括CONTINUE、EXIT、UNDO, 表示继续、退出、撤销(暂时不支持)。这边就是两种动作,其实这两种动作在上面也说过了,CONTINUE就是一个是SQLWARNING和NOT FOUND的默认处理方法,而EXIT就是SQLEXCEPTION的默认处理方法。

另:

condition_name:命名条件 MySQL error code或者SQLSTATE code的可读性太差,所以引入了命名条件:

语法:

使用:

示例:

标签: mysql8.0存储过程

本文链接地址:https://www.jiuchutong.com/biancheng/348589.html 转载请保留说明!

上一篇:Windows 下noinstall方式安装 mysql 5.7.5 m15 winx64(推荐)(windows installation disc)

下一篇:Mysql索引的类型和优缺点详解(mysql 索引的类型)

  • 应交税费是什么科目借贷方向
  • 未按期纳税申报怎么处理
  • 什一税是什么意思?
  • 以前年度损益调整结转到未分配利润
  • 所得税本期需要结转吗
  • 房租押金算费用吗
  • 房地产开发的会计处理
  • 餐饮服务属于什么票据类型
  • 小规模纳税人如何升级为一般纳税人
  • 没有收汇可以申报吗
  • 以库存现金代垫怎么做账
  • 员工异地交纳保险怎么交
  • 新成立的公司每天付款有要求吗
  • 小规模纳税人没有成本票怎么做账
  • 税号最后一位字母T
  • 异地不动产租赁 深圳税务 所得税
  • 销售发票冲红的条件有哪些?
  • 企业的无形资产包括哪些内容
  • 计提的存货跌价准备
  • 往来款和应收账款
  • window11 正式版
  • 航天信息维护费300元能全额抵扣吗
  • 存货的毁损通过什么科目核算
  • macOS Big Sur 11.4 Beta 1(版本号20F5046g)正式发布
  • 一次性劳务报酬所得如何扣税
  • 待抵扣进项税额借贷方向
  • 数据库impala
  • 一只华莱士飞蛙掠过森林地面 (© Stephen Dalton/Minden Pictures)
  • 【深度学习时间序列预测案例】零基础入门经典深度学习时间序列预测项目实战(附代码+数据集+原理介绍)
  • 【GitHub Copilot X】基于GPT-4的全新智能编程助手
  • yolov5官方
  • 现金等价物是指企业持有的
  • 上个月成本做多了怎么冲账
  • 上个月没有开票需要清卡吗
  • ps魔棒工具选择图像时在容差数值较大的是
  • python用途
  • 机器学习——果蔬分类
  • dedecms怎么用
  • 工商罚款计入
  • 应收账款余额百分比法怎么算
  • 企业所得税是指利润的税吗
  • sqlserver聚集函数
  • SQL Server Native Client下载 SQL Server Native Client安装方法
  • ado连接access数据库
  • 单位卖车怎么做账
  • 销售退回采购方的会计分录
  • 一个人可以做多个担保人吗
  • 应交税费科目的核算内容
  • 如何处理库存货
  • 新开立银行账户怎么办理
  • 免税农产品怎么开发票
  • 认缴资金 实缴资金
  • 金蝶固定资产管理
  • 公司分期付款买车怎么抵税
  • 会计主体包括哪些四种
  • mysqlsum查询慢
  • 苹果15手机价格和图片颜色
  • 电脑硬件用途
  • xp系统插u盘没反应怎么解决
  • linux日期格式
  • slee401.exe - slee401是什么进程 有什么用
  • win8杀毒软件关闭
  • Coroutine couldn't be started because the the game object 'GameController' is inactive!
  • 解决Extjs4中form表单提交后无法进入success函数问题
  • HTML <!DOCTYPE> 标签
  • 如何获取硬盘所有文件的列表
  • [置顶]bilinovel
  • 基于stm32的100个毕业设计
  • javascript内存管理
  • python里!
  • mac打开多个窗口
  • js布局与css布局
  • ps如何把图片放大缩小
  • 音频基础知识及训练
  • python搜索功能
  • flash怎么测试当前场景
  • js优化性能
  • 印花税当期没有发生可以不用申报吗
  • 重庆国税电子税务局
  • 税控机发票打印机怎么用
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设