MySQL 、Sql server 错误处理机制

sql server 错误处理机制

try 。。。catch

```sql
---Try Catch  Syntax
BEGIN  TRY
	{<sql statements>}
end TRY
BEGIN Catch
	{<sql> statements}
end catch [;]




####   MySQL    程序错误处理机制
** 定义条件  +   定义处理程序**
定义条件:
>declare 错误名称 condition for  {数值型错误码 | sqlstate '字符串类错误代码'}
> 
> 错误码的说明:
> MySQL_error_code  和  sqlstate_value  都可以表示MySQL的错误
> MySQL_error_code  : 是数值型错误代码
> sqlstate_value :是长度为 5 的字符串类型错误代码。
![在这里插入图片描述](https://img-blog.csdnimg.cn/28e8676aa86245fa91e20449aae8a9c9.png)
**案例**
> #  方式1
> declare   Filed_id_PRI  condition for  1062
>  
>  # 方式2
>  declare  Filed_id_PRI  condition for  sqlstate '23000'

**定义处理程序**
可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序。定义处理程序时,使用declare语句的语法如下:

>declare  处理方式   handler for 错误类型  处理语句;
> 
> 处理方式:  continue、 exit、undo
> continue:表示遇到错误不处理,继续执行
> exit:表示遇到错误,马上退出。  默认就这个
> undo : 表示遇到错误后撤回之前的操作,mySQL 中目前不支持这样操作
>  
>  错误类型 (即条件)
>  SQLSTATE '字符串错误码' :表示长度为 5 的 SQLstate_value 类型的错误代码
>  mysql_error_code :匹配数值类型的错误代码
>  错误名称 :表示  declare    错误名称    condition  for  错误代码   
>  SQLWarning :匹配所有以 01 开头的SQLSTATE错误代码
>  NOT FOUND :匹配所有以 02开头的SQLSTATE错误代码
>  sqlexception:匹配所有 没有被SQLWARINING或NOT FOUND捕获的SQLSTATE错误代码
>   
>   处理语句:
>   如果出现上述条件之一,则采用对应的处理方式,并执行指定的处理语句。语句可以是像
>   set 变量 = 值  这样的简单语句,
>   也可以是使用  begin  。。。。。 end  编写的复合语句
>    
>     
>  案例
>  declare   continue  handler for   {1062 | sqlstate '23000' | Filed_id_PRI  } set  @val='xxxx'
>  
>  


**案例**

delimiter $

create procedure pro_1()

begin

declare continue handler for 1062 set @val='ares-wang';

set @x=0;

insert into test_1(id,name) values(1,'zen'),(2,'zen');

set @x=1;

end $

delimiter ;

call pro_1()

![在这里插入图片描述](https://img-blog.csdnimg.cn/aa81e3fbb42a45d086f398be7734b6b8.png)


![在这里插入图片描述](https://img-blog.csdnimg.cn/227fb7cac47b4ef286ed0c3569850087.png)
相关推荐
平行线也会相交2 分钟前
云图库平台(三)——后端用户模块开发
数据库·spring boot·mysql·云图库平台
Vincent(朱志强)1 小时前
设计模式详解(十二):单例模式——Singleton
android·单例模式·设计模式
恒辉信达1 小时前
hhdb客户端介绍(53)
数据库·mysql·hhdb·数据库可视化界面客户端
mmsx1 小时前
android 登录界面编写
android·登录界面
姜毛毛-JYM1 小时前
【JetPack】Navigation知识点总结
android
Hello.Reader2 小时前
Redis热点数据管理全解析:从MySQL同步到高效缓存的完整解决方案
redis·mysql·缓存
花生糖@3 小时前
Android XR 应用程序开发 | 从 Unity 6 开发准备到应用程序构建的步骤
android·unity·xr·android xr
是程序喵呀3 小时前
MySQL备份
android·mysql·adb
casual_clover3 小时前
Android 之 List 简述
android·list
指尖上跳动的旋律3 小时前
shell脚本定义特殊字符导致执行mysql文件错误的问题
数据库·mysql