数据库学习笔记(五)

1.异常处理语法

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

2.参数说明

(1) handler_type: CONTINUE|EXITIUNDO

handler_type 为错误处理方式,参数为3个值之一;

CONTINUE 表示遇到错误不处理,继续执行;

EXIT 表示遇到错误时马上退出;

UNDO 表示遇到错误后撤回之前的操作,MySQL暂不支持回滚操作;

(2) condition_value: SQLSTATE [VALUE] sqlstate_value l condition_name| SQLWARNING | NOT FOUND | SQLEXCEPTION | mysql_error_code

condition_value 表示错误类型;

SQLSTATE [VALUE]sqlstate_value 为包含5个字符的字符串错误值;

condition_name 表示DECLARE CONDITION定义的错误条件名称;

SQLWARNING匹配所有以01开头的SQLSTATE错误代码;

NOT FOUND 匹配所有以02开头的SQLSTATE错误代码;

SQLEXCEPTION匹配所有没有被SQLWARNING 或NOT FOUND 捕获的SQLSTATE错误代码;

mysql_error_code 匹配数值类型错误代码;

3.异常捕获方法

(1)方法一:捕获sqlstate_value异常

这种方法是捕获sqlstate_value值。如果遇到sqlstate_value值为“42502",执行CONTINUE 操作,并输出"NO_SUCH_TABLE"信息

DECLARE CONTINUE HANDLER FOR SQLSTATE '425O2' SET @info=’NO_SUCH_TABLE';

(2)方法二:捕获mysql_error_code 异常

这种方法是捕获mysql_error_code 值。如果遇到mysql_error_code值为1146;

执行CONTINUE 操作,并输出"NO SUCH TABLE"信息;

DECLARE CONTINUE HANDLER FOR 1146 SET @info=’NO_SUCH_TABLE';

(3)方法三:先定义条件,然后捕获异常

DECLARE no_such_table CONDITION FOR 1146;

DECLARE CONTINUE HANDLER FOR NO_SUCH_TABLE SET @info=’NO_SUCH_TABLE':

(4)方法四:使用SQLWARNING捕装异常

DECLARE EXIT HANDLER FOR SQLWARNING SET @info=’ERROR’;

(5)方法五:使用NOT FOUND 捕获异常

DECLARE EXIT HANDLER FOR NOT FOUND SET @info=’NO_SUCH_TABLE':

(6)方法六:使用 SQLEXCEPTION 装异常

DECLAR EXIT HANDLER FOR SQLEXCEPTION SET@info=’ERROR’';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值