在开发过程中,经常需要对特定的条件进行处理,这些条件可以联系到错误以及子程序中的一般流程控制
<h3 id="定义条件">定义条件
是指事先定义,程序执行过程中遇到的问题 处理程序定义了在遇到这些问题时,应当采取的处理方式,并且,保证存储过程在遇到警告或错误时,能继续执行
定义条件 在编写存储过程中,使用DECLARE语句
<h3 id="语法格式">语法格式
DECLARE condition_name CONDITION FOR [condition_type];
// condition_type的两种形式 [condition_type]: sqlSTATE[VALUE] sqlstate_value | MysqL-error_code
<h3 id="参数说明">参数说明
Condition,表示所定义的条件的名称 Condition_type,表示条件的类型 sqlstate_value和MysqL_error_code,都可以表示MysqL的错误 sqlstate_value,是长度为5的字符串类型错误代码 MysqL_error_code,为数值类型的错误代码
上述语句,指定了需要特殊处理的条件,它将一个名字和指定的错误条件关联起来,这个名字可以随后被用在,定义处理程序的DECLARE HANDLER语句中
定义ERROR1148(42000)错误,名称为command_not_allowed 可以使用两个不同的方法来定义
<h3 id="方法一使用sqlstatevalue">方法一,使用sqlstate_value
DECLARE command_not_allowed CONDITION FOR sqlSTATE ‘42000’;
<h3 id="方法二使用MysqLerrorcode">方法二,使用MysqL_error_code
DECLARE command_not_allowed CONDITION FOR 1148;