多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
## 定义条件 作用 : 特定条件需要特定处理,这些条件可以联系到错误,以及子程序中的一般流程控制.定义条件是事先定义程序执行过程中遇到的问题,处理程序定义了在遇到这些问题时应当采取的处理方式,并且保证存储过程或函数在遇到警告或错误时才能继续执行.这样可以增强存储过程程序处理问题的能力,避免程序异常停止运行. ```sql declare 条件的名称 condition for [条件的类型...]; ``` 参数介绍 - 条件的类型 |错误类型|介绍| |-|-| |sqlstate['value']|匹配指定5个字符串错误值| |MySQL_error_code|匹配数值类型错误代码| ## 定义处理程序 ```sql declare 错误处理方式 handler for 错误类型[,...] 程序语句段; ``` ### 参数介绍 + 错误处理方式 : |错误处理方式|介绍| |-|-| |continue|表示遇到错误不处理| |exit|表示遇到错误马上退出| |undo|表示遇到错误撤回之前操作| + 错误类型 : |错误类型|介绍| |-|-| |sqlstate['value']|匹配指定5个字符串错误值| |自定义条件名称|表示declare coneition定义的错误条件名称| |sqlwarning|匹配所有以01开头的sqlstate错误代码| |not found|匹配所有以02开头的sqlstate错误代码| |sqlexception|匹配所有没有被sqlwarning或not found捕获的sqlstate错误代码| |MySQL_error_code|匹配数值类型错误代码| + 程序语句段 : 表示在遇到定义的错误时,需要执行的存储过程或函数 ### 例子 #### 捕获sqlstate['value'] ```sql declare continue handler for sqlstate '42S02' set @info='错误信息'; ``` #### 捕获mysql_error_code ```sql declare continue handler for 1146 set @info='错误信息'; ``` #### 先定义再捕获 ```sql declare uuphp_error condition for 1146; declare continue handler for uuphp_error set @info='错误信息'; ``` #### 使用sqlwarning ```sql declare exit handler for sqlwarning set @info='错误信息'; ``` #### 使用not found ```sql declare exit handler for not found set @info='错误信息'; ``` #### 使用sqlexception ```sql declare exit handler for sqlexception set @info='错误信息'; ```