一、格式
DECLARE handler_type HANDLER FOR condition_value
handler_type类型:
1、EXIT:发生错误时退出当前代码块
2、CONTINUE:发生错误时继续执行后续代码
condition_value:
condition_value支持标准的SQLSTATE定义。
SQLWARNING是对所有以01开头的SQLSTATE代码的速记。
NOT FOUND是对所有以02开头的SQLSTATE代码的速记。
SQLEXCEPTION是对所有没有被SQLWARNING或 NOT FOUND捕获的SQLSTATE代码速记。
除了SQLSTATE值,MYSQL错误带啊也支持,但是对MySQL而言,优先级如下:
MySQL error code > SQLSTATE code >命令条件
condition_name:命名条件
MySQL error code或者SQLSTATE code的可读性太差,所以引入了命名条件:
1)DECLARE condition_name CONDITION FOR condition_value
condition_value: SQLSTATE [VALUE] sqlstate_value | mysql_error_code
2)
# original
DECLARE CONTINUE HANDLER FOR 1216 MySQL_statements;
# changed
DECLARE foreign_key_error CONDITION FOR 1216;
DECLARE CONTINUE HANDLER FOR foreign_key_error MySQL_statements;
示例2: Last Row Handler
综合示例: