MySQL处理器
小于 1 分钟约 280 字
在事务中,我们举了一个若在一个完整的事务中发生异常则回滚的例子,里面使用了处理器,下面我们简单叙述一下如何使用处理器处理存储过程中的异常。
定义处理器
DECLARE …… HANDLER的语法如下。
DECLARE handler_action HANDLER FOR condition_value [,condition_value] ...
statement;
参数意义如下:
handler_action
:代表SQL脚本是否继续运行,其可选两个值:CONTINUE
,表示继续执行当前SQL脚本;和EXIT
,即使condition_value
由statement
语句块触发,也会终止执行。statement
:当处理器满足conditon_value时,要执行的SQL语句。它可以是一个简单的SQL语句,若为多个语句,需使用begin ... end
。condition_value
:满足条件。其取值可为以下几种:- mysql_error_code:MySQL的错误码,为整数类型。
- SQLSTATE:用五个字符表示的SQLSTATE值。
- condition_name:使用
declare ... condition
定义的条件名称。 - SQLWARNING:SQL警告,相当于值从01开始的SQLSTATE。
- NOT FOUND:未找到,相当于值从02开始的SQLSTATE。
- SQLEXCEPTION:SQL异常,相当于所有值不为00、01、02的SQLSTATE。