sql异常处理以及sql异常处理优先级

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: sql异常处理以及sql异常处理优先级

sql异常处理以及sql异常处理优先级

一、 sql异常处理


1,error---错误码        sqlState状态值---sqlwarning、not found、sqlexception

 

2,mysql中的异常处理:declare action(continue或exit) handler for

condition(错误码或者错误状态--- not found、sqlExeception、sqlwarning) value statement

(ps: ① continue----继续执行,exit 退出;

        ② statement:可以是一句语句(设置布尔变量的值,也可是打印显示出结果),也可以是多条语句,封装到begin…end结构)

 

2-1,☼  声明异常处理,continue继续执行的情况:

declare continue handler for 【错误状态码/错误状态】+ 设置set 某个布尔变量值=1的语句/打印显示某个结果

 

具体案例:

例1:【错误码】:例如如果出现重复的键值

 异常处理:declare continue handler for1062select ‘1062 重复的键值错误’ ;

 

例2:【错误状态】:not found,例如:

对于游标或者select into 赋值操作,如果出现找不到记录的情况,将变量的值设置为1。      

declare no_row_found int default 0;

 异常处理:declare continue handler for not found set no_found_row=1;

 

例3:【错误状态】:sqlexception,例如:

declare has_error int default 0;

异常处理:declare continue handler forsqlexceptionset has_error = 1;

✿ 总结:一般异常关键字,用sqlexception,如果是游标的话,就用not found。

 

2-2,☼  声明异常处理,exit退出的情况:

具体案例:当遇到错误时,程序回滚操作,并给出错误提示,然后退出当前代码块

 

      异常处理:declare exit handler forsqlexception

      begin

            rollback

             select ‘错误’; #打印错误提示

     end;

 

 

二、mysql 错误处理程序的优先级:


 

mysql一个error都会对应一个错误代码一个sqlState(not found、 sqlWarming、sqlexeception)的状态,可以映射到mysql的多个错误代码(不具体)

 

错误优先级处理:error 最先处理,其次是sqlState,最后是sqlExecption

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
SQL
简述SQL语句的优先级顺序
简述SQL语句的优先级顺序
115 0
|
SQL 安全 关系型数据库
MySQL运算符,SQL,算术比较逻辑位,优先级,正则表达式,完整详细可收藏
MySQL运算符,SQL,算术比较逻辑位,优先级,正则表达式,完整详细可收藏
426 0
MySQL运算符,SQL,算术比较逻辑位,优先级,正则表达式,完整详细可收藏
|
SQL XML 关系型数据库
IDEA SpringBoot SQL连接常见五大异常处理
IDEA SpringBoot SQL连接常见五大异常处理
1804 0
IDEA SpringBoot SQL连接常见五大异常处理
|
SQL 关系型数据库 MySQL
PolarDB-X 1.0-SQL 手册-运算符-运算符优先级
PolarDB-X 中操作符的优先级由高到低,如下所示:
137 0
|
SQL 存储 缓存
根据运算符优先级解析SQL规则表达式
根据运算符优先级解析SQL规则表达式 目录 1.需求 2.知识准备 2.1 运算符优先级解析 2.2 流程分析 3.解决方案 3.1 思路1 3.2 思路2   正文 回到顶部 1.需求 测试数据库使用Greenplum,生产库使用GBase 普通表:存储客户数据,千万级别,结构如下 stat_date代表日期;user_id代表用户id;serial_number代表手机号;A_I72和A_I59是标签字段。
1590 0
|
SQL Oracle 关系型数据库
|
存储
T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)
原文:T-SQL编程中的异常处理-异常捕获(try catch)与抛出异常(throw)   本文出处: http://www.cnblogs.com/wy123/p/6743515.html     T-SQL编程与应用程序一样,都有异常处理机制,比如异常的捕获与异常的抛出(try catch throw),本文简单介绍异常捕获与异常抛出在T-SQL编程中的实际使用 。
1894 0