5、存储过程条件定义与错误处理
-- (1)定义
【1】条件定义:declare condition_name condition for condition_value;
【2】错误处理:declare handler_type handler for condition_value[] sql_statement;
handler_type:
【1】continue:遇到错误后不处理,继续向下执行 【2】exit :遇到错误后退出过程 【3】undo:表示遇到错误后撤回之前的操作,但mysql暂时还不支持这种
DECLARE condition_name CONDITION FOR[condition_type]
[condition_type]:
SQLSTATE[VALUE] sqlstate_value |mysql_error_code
condition_name:表示条件名称
condition_type:表示条件的类型
sqlstate_value和mysql_error_code都可以表示mysql错误
sqlstate_value为长度5的字符串错误代码
mysql_error_code为数值类型错误代码,例如:ERROR1142(42000)中,sqlstate_value的值是42000,
mysql_error_code的值是1142
这个语句指定需要特殊处理条件。他将一个名字和指定的错误条件关联起来。
这个名字随后被用在定义处理程序的DECLARE HANDLER语句中
定义ERROR1148(42000)错误,名称为command_not_allowed。