Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 未找到的处理程序是如何工作的,它的用途是什么?_Mysql - Fatal编程技术网

Mysql 未找到的处理程序是如何工作的,它的用途是什么?

Mysql 未找到的处理程序是如何工作的,它的用途是什么?,mysql,Mysql,对MySQL来说还是有点陌生。我想知道什么是未找到的处理程序,它是如何工作的,最重要的是:它的用途是什么?处理程序用于捕获异常 从游标读取时,如果读取超过游标的末尾,则会引发未找到异常,而不是返回无休止的NULL流,因此必须捕获此异常 DECLARE val1 INT DEFAULT NULL; DECLARE done TINYINT DEFAULT FALSE; DECLARE c1 CURSOR FOR SELECT id FROM t1; -- when the NOT FOUND

对MySQL来说还是有点陌生。我想知道什么是未找到的处理程序,它是如何工作的,最重要的是:它的用途是什么?

处理程序用于捕获异常

从游标读取时,如果读取超过游标的末尾,则会引发未找到异常,而不是返回无休止的NULL流,因此必须捕获此异常

DECLARE val1 INT DEFAULT NULL;
DECLARE done TINYINT DEFAULT FALSE;

DECLARE c1 CURSOR FOR SELECT id FROM t1;

-- when the NOT FOUND condition fires, "done" -- which defaults to FALSE -- will be set to true,
-- and since this is a CONTINUE handler, execution continues with the next statement.   

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN c1;

my_loop: 
LOOP

  FETCH NEXT FROM c1 INTO val1; 
  IF done THEN -- this will be true when we are out of rows to read, so we go to the statement after END LOOP.
    LEAVE my_loop; 
  ELSE
    -- maybe do more stuff here
  END IF;
END LOOP;

-- procedure continues here...

部分复制自我的示例。

你可以试试谷歌。看看