mysql异常处理_MySQL中的异常处理1,定义
与java中的异常⼀样,都是⽤来定义在处理过程中遇到的问题以及相应的处理⽅式。
2,⾃定义异常及处理⽅式
1,⾃定义异常语句
DECLARE condition_name CONDITION FOR condition_value;
condition_name:是⾃⼰起的名字,最好见名知意。
condition_value:可以是SQLSTATE[VALUE] sqlstate_value也可以是mysql_error_value。
结构体全局变量怎么定义
sqlstate_value是长度为5的字符串错误代码。
mysql_error_value是数值类型的错误代码。
2,⾃定义异常处理
DECLARE handler_type HANDLER FOR condition_value sp_statement;
苹果手机字体大小怎么设置
dag翻译成中文
handler_type:有三个取值
CONTINUE:遇到错误不进⾏处理,跳过错误继续执⾏之后的代码。
EXIT:遇到错误时马上退出,不再执⾏之后的操作。
UNDO:遇到错误后撤回之前已经执⾏的操作,MySQL暂不⽀持该操作。
condition_value:错误名称:有以下取值
condition_name:定义异常时取的名字
mysql_error_value:数值类型的错误代码
mysql查看所有存储过程SQLWARNING:对所有01开头的SQLSTATE代码的速记
NOT FOUND:对所有01开头的SQLSTATE代码的速记
SQLEXCEPTION:除SQLWARNING和NOT FOUND之外的SQLSTATE代码的速记。
sp_statement:异常之后的处理。
游戏开发培训学费
3,实例展⽰
创建以下表格,将u_id设置为主键,并插⼊以下数据:
创建⼀个名为insert_user的存储过程:
BEGIN
set @x = 1;insert into users values(3,'zhaoliu',26);set @x = 2;insert into users values(4,'zhouqi',27);set @x = 3;END
通过使⽤⽤户变量@x来查看代码是否运⾏,调⽤存储过程
call insert_user();
出现以下错误角钢规格型号尺寸大全
其中数字1062就是mysql_error_code。对应的sqlstate_value是‘23000’,具体的对应⽅式可以看对应表。
查看@x的值
select @x;
可以看到u_id = 3的这条语句出现了异常。
接下来我们加⼊异常处理:
BEGIN#Routine body
#⽅式⼀:直接异常处理
#declare exit HANDLER FOR 1062 set @x1 = 4;
#⽅式⼆:先⾃定义异常,再使⽤异常处理DECLARE error1 CONDITION for 1062;declare exit HANDLER FOR 1062 set @x1 = 4; -- 在这⾥handler_type先使⽤exitset @x = 1;insert into users values(3,'zhaoliu',26);set @x = 2;insert into users
values(4,'zhouqi',27);set @x = 3;END
在这⾥为了检验效果,我们设置的对异常的处理是将@x1设置为4。
再次调⽤该存储过程就不会报错了
select @x,@x1;
查询⽤户变量
发现当出现异常时,程序会执⾏异常的处理并且退出该过程。
将过程中的handler_type改成continue,再次执⾏该过程,也不会出错。
查询⽤户变量
发现对于异常处理之后,会继续运⾏之后的代码
查询users表
异常的插⼊语句没有执⾏,但是后⾯的没有发⽣异常的语句执⾏了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。