跳至主要內容

MySQL处理器

小于 1 分钟约 280 字

在事务中,我们举了一个若在一个完整的事务中发生异常则回滚的例子,里面使用了处理器,下面我们简单叙述一下如何使用处理器处理存储过程中的异常。

定义处理器

DECLARE …… HANDLER的语法如下。

DECLARE handler_action HANDLER FOR condition_value [,condition_value] ...
	statement;

参数意义如下:

  • handler_action:代表SQL脚本是否继续运行,其可选两个值:CONTINUE,表示继续执行当前SQL脚本;和EXIT,即使condition_valuestatement语句块触发,也会终止执行。
  • 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。
上次编辑于:
贡献者: QI