位置: 编程技术 - 正文

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 索引的类型)

  • 小规模纳税人转一般纳税人
  • 工会经费计税依据包括社保吗
  • 怎么证明自己是建档立卡贫困户
  • 中级税务师报名条件
  • 在建工程贷款利息分录
  • 无息借款账务处理
  • 企业内部研发支出会计处理探讨
  • 新会计准则下具体会计准则对银行的影响不包括
  • 附加税减免所得税汇缴的时候需要调整吗
  • 合并报表成本法调整为权益法
  • 营改增后转让土地使用权交什么税
  • 退回来的增值税税费怎么做账务处理
  • 营业外收入期末结转
  • 子公司给总公司开发票
  • 承兑贴现给个人怎么做账
  • 奖励给优质供应商会计处理怎么做?
  • 对于税收会计记账科目应该如何设置?
  • 购货发票未到
  • 发票抵扣联什么时候用
  • 个税退税手续费税率
  • 员工误餐费的会计分录
  • 企业购买设备可以税前扣除吗
  • 机动车发票怎么作废
  • 待摊费用和长期待摊费用的区别
  • 专项资金如何做账务处理
  • 事业单位固定资产处置流程
  • 个人购买经济适用住房享受减半征收契税优惠应报送
  • 企业涉及应付利息的税金
  • 小规模纳税人收到增值税专用发票怎么办
  • 小规模未达起征点附加税要计提吗
  • 发票金额大于开票金额
  • 网络服务费一般纳税人几个点
  • 企业出现销售折扣时如何处理
  • 冲销货款应怎么记账
  • 如何防止win10自动重启
  • linux aptx
  • 不动产租赁费计入什么科目
  • 进项发票抵扣途中怎么办
  • 公司未经营需要做所得税年度清缴吗
  • 不动产出租要交什么税
  • php socket_select
  • 劳务公司给包工头打款备注写什么
  • php超时限制
  • 公司员工的车加油可以开公司发票吗
  • 以前年度漏记收入
  • 企业发生的汇兑差额
  • 生产性资金性质
  • sql server 2005 service pack3
  • 职业年金是什么意思?退休后怎么算职业年金?
  • 低值易耗品可以报废吗
  • 办公室购花卉会计处理
  • 对外公司
  • 利润分配和所有者权益的关系
  • 公司增资的法条
  • 毁损的原材料怎么处理
  • 公司按揭贷款
  • mysql远程连接报10061
  • mysql导入导出sql文件
  • mysql 5.7.11 winx64安装配置教程
  • 苹果mac安装win7系统
  • centos nohup
  • 在windows中创建用户的步骤
  • centos中如何查看ip地址
  • 无光驱无u盘重装系统
  • win8.1语言包下载
  • win8如何使用网页版的onedrive
  • 笔记本win8为什么不能连无线
  • linux bye
  • Immutable 在 JavaScript 中的应用
  • h5抽奖转盘
  • 为什么要建立文明城市
  • 置顶在哪里
  • jq判断浏览器
  • vue用户权限解决方案
  • 二级菜单css代码
  • python3中map
  • jquery event
  • 企业欠税补交后影响贷款吗
  • 新能源车异地购车
  • ipadpro关税多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设