15 定义条件和处理程序

实际开发中,经常需要对特定的条件进行处理,这些条件可以联系到错误以及子程序中的一般流程控制。定义条件是事先定义程序执行过程中遇到的问题,处理程序定义了在遇到这些问题时应当采取的处理方式,并且保证存储过程在遇到警告或者错误时能继续执行。

1. 定义条件

DECLARE condition_name CONDITION FOR condition_type;

condition_type  有两种形式

●  SQLSTATE VALUES sqlstate_value

●  mysql_error_code

 1049  --  sqlstate_value

42000 --  mysql_error_code

2.  定义处理程序

DECLARE  handler_type  HANDLER  FOR  condition_value... sp_statement (接下来的处理程序)

handler_type :  ●  CONTINUE 遇到错误不处理,继续执行

                         ●  EXIT 遇到错误马上退出

                         ●  UNDO 遇到错误撤回之前的操作,MySQL暂时不支持这个操作

condition_value: ●  SQLSTATE[VALUE]  包含5个字符的字符串错误值

                           ●  condition_name  表示DELCLARE CONDITION 定义的错误条件名称

                           ●  SQLWARNING  匹配所有以01开头的 SQLSTATE 错误代码

                           ●  NOT FOUND  匹配所有以02开头的SQLSTATE错误代码

                           ●  SQLEXCEPTION 匹配所有没有被SQLWARNING或NOT FOUND 捕获的 SQLSTATE错误代码

                           ●  mysql_error_code 匹配数值类型错误代码

3. 光标的使用

如何从一堆结果中找出自己想要的数据

○ 光标的声明

DECLARE cursor_name CURSOR FOR select_statement

○ 光标的使用

OPEN cursor_name;  -- 光标默认指向表头

○ 取出数据

FETCH cursor_name INTO var_name...    --  这里的变量需要在光标之前就定义好

○ 关闭光标

CLOSE cursor_name

猜你喜欢

转载自www.cnblogs.com/deepsealin/p/12896855.html
15