位置: 编程技术 - 正文

MySQL定义异常和异常处理详解(mysql定义语句)

编辑:rootadmin

推荐整理分享MySQL定义异常和异常处理详解(mysql定义语句),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql定义条件和处理过程,mysql自定义异常处理,mysql自定义异常处理,mysql定义语句,mysql定义变量报错,mysql定义变量报错,mysql定义语句,mysql定义变量报错,内容如对您有帮助,希望把文章链接给更多的朋友!

在MySQL中,特定异常需要特定处理。这些异常可以联系到错误,以及子程序中的一般流程控制。定义异常是事先定义程序执行过程中遇到的问题,异常处理定义了在遇到问题时对应当采取的处理方式,并且保证存储过程或者函数在遇到错误时或者警告时能够继续执行。

1 异常定义

1.1 语法

DECLARE condition_name CONDITION FOR [condition_type];

1.2 说明

condition_name参数表示异常的名称; condition_type参数表示条件的类型,condition_type由SQLSTATE [VALUE] sqlstate_value|mysql_error_code组成:

sqlstate_value和mysql_error_code都可以表示MySQL的错误; sqlstate_value为长度为5的字符串类型的错误代码; mysql_error_code为数值类型错误代码;

1.3 示例 定义“ERROR ()”错误,名称为command_not_allowed。可以有以下两种方法:

2 自定义异常处理

2.1 异常处理语法

DECLARE handler_type HANDLER FOR condition_value [,...] sp_statement

2.2 参数说明

MySQL定义异常和异常处理详解(mysql定义语句)

handler_type: CONTINUE|EXIT|UNDO

handler_type为错误处理方式,参数为3个值之一; CONTINUE表示遇到错误不处理,继续执行; EXIT表示遇到错误时马上退出; UNDO表示遇到错误后撤回之前的操作,MySQL暂不支持回滚操作;

condition_value: SQLSTATE [VALUE] sqlstate_value| condition_name|SQLWARNING|NOT FOUND|SQLEXCEPTION|mysql_error_code

condition_value表示错误类型; SQLSTATE [VALUE] sqlstate_value为包含5个字符的字符串错误值; condition_name表示DECLARE CONDITION定义的错误条件名称; SQLWARNING匹配所有以开头的SQLSTATE错误代码; NOT FOUND匹配所有以开头的SQLSTATE错误代码; SQLEXCEPTION匹配所有没有被SQLWARNING或NOT FOUND捕获的SQLSTATE错误代码; mysql_error_code匹配数值类型错误代码;

2.3 异常捕获方法

3 综合示例

创建一个表,设置该表的主键,在不定义异常处理和定义异常处理情况下看执行到哪一步。

示例1:不定义异常情况下

调用存储过程与结果:

注意:操作示例2前要清空表中数据,并退出重新登录,以免客户端变量@x影响,详细说明参见结论中的第一点。

示例2:定义异常处理情况下:

调用存储过程与结果:

说明与结论:

一、MySQL中,@var_name表示用户变量,使用SET语句为其赋值,用户变量与连接有关,一个客户端定义的变量不能被其他客户端看到或者使用。当客户端退出时,该客户端连接的所有变量将自动释放。

二、在示例1中,由于注释了异常的声明”",此时向表中插入相同主键,就会触发异常,并且采取默认(EXIT)路径;且查看此时的@x返回2,表示下面的INSERT语句并没有执行就退出了.

三、定义了异常处理,此时遇到错误也会按照异常定义那样继续执行;但只有第一条数据被插入到表中,此时用户变量@x=3说明已经执行到了结尾;

标签: mysql定义语句

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

上一篇:mysql 报错This function has none of DETERMINISTIC解决方案(mysql 报错1045)

下一篇:Linux中更改转移mysql数据库目录的步骤(linux转移文件代码)

  • 会计记账凭证如何填制
  • 普通发票专用发票每张最高限额
  • 超范围经营如何举报
  • 小规模纳税人季报还是月报?
  • 资产减值损失管理措施
  • 合同里包括产品销售和服务如何开票?
  • 研发支出转入管理费用摘要
  • 机构账户炒股是卖出后缴税么
  • 金融资产的减少为什么记在贷方
  • 企业减免6%的税的营业范围有哪些?
  • 应纳税额计算举例
  • 道路运输业税率多少
  • 租房提取的话可以全部提取吗
  • 案例分析正当防卫
  • 劳保用品计入福利费嘛
  • 现金流量表的填写视频
  • 子公司借款给母公司要交税吗
  • 购进货物无偿赠送其他单位
  • 企业所得税计算方法公式
  • 印花税纳税申报表填写范本
  • 发放工资不计提可以吗
  • 土地拍卖资金交到哪里
  • 远程桌面连接失败了
  • win10更新kb5006670
  • 销售商品收到商业汇票一张会计分录
  • scrfs.exe - scrfs是什么进程 有什么用
  • 转账支票出账日期
  • 个人如何办理住房贷款
  • 新购固定资产账务处理
  • 营改增全面推开为什么还叫试点
  • 集团公司对子公司如何进行资金管理
  • 长期股权投资初始投资成本和入账价值
  • Vue Grid Layout -️ 适用Vue.js的栅格布局系统(保姆级使用教程)
  • 劳务报酬个税计算器2021计算器
  • swiper插件使用步骤
  • AI - stable-diffusion(AI绘画)的搭建与使用
  • 四舍五入 vb
  • 在建工程转入固定资产怎么做
  • 房地产企业收到定金是否要预缴税款
  • 返还个人所得税怎么操作
  • 缴纳上月应交未交税费
  • 在建工程的预付款账务处理
  • 进项税准予抵扣条件有哪些
  • 城市维护建设税的计税依据
  • 企业发行债券的优点有哪些
  • 预付款项怎么做分录
  • 以前多计提的税款怎么办
  • 银行回单太多了
  • 过程中必须有哪两种状态
  • 预提与计提的区别在哪里
  • 中药饮片盘点损耗率 法律
  • 机票行程单改签费抵扣 税务局
  • 没交税的发票可以抵扣吗
  • 劳务费如何做账务处理
  • 会计一般月初忙几天
  • mysql中分组
  • 安装完成后如何检验安装的部分是否符合安装工艺
  • sql server 约束
  • CentOS 6.5 i386 安装MySQL 5.7.18详细教程
  • mysql绿色版配置
  • ubuntu的命令行快捷键
  • windows 2000 server系统安装图解
  • 电脑光驱怎么装系统w7
  • win8系统怎么样
  • scards32.exe - scards32是什么进程 有什么用
  • linux命令怎么执行
  • linux系统变卡慢了
  • win7耳机和外放一起响
  • perl-v
  • cocos2dx4.0教程
  • js实现下拉框联动
  • Linux中scp命令获取远程文件的方法
  • css对象
  • jquery日程安排
  • [置顶]马粥街残酷史
  • java模拟浏览器点击
  • python reducebykey
  • Android之Service
  • 土地闲置是否需要缴纳土地使用税
  • 领导对税收分析肯定性批示
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设