MySQL游标

游标 cursor

相似于迭代器,将查询结果经过迭代器一一取出code

基础语法

DECLARE [游标名] CURSOR FOR [查询语句] ;

越界标识

DECLARE flag INT DEFAULT 1;	
DECLARE CONTINUE|EXIT|UNDO HANDLER FOR NOT FOUND SET flag := 0;

当游标取值为空时,会触发越界标识,将flag置为0 CONTINUE 后面的语句继续 EXIT 后面的语句结束 UNDO 前面的语句撤销get

注意:flag变量声明须要在游标声明语句以前,不然会报错。

使用例子

DELIMITER $;
 CREATE PROCEDURE p11()
 BEGIN
	DECLARE exam_id INT ;
	DECLARE exam_name VARCHAR(20);

	DECLARE flag INT DEFAULT 1;	
	
	DECLARE getRow CURSOR FOR SELECT id, NAME FROM exam ;	
	DECLARE EXIT HANDLER FOR NOT FOUND SET flag := 0;
	
	OPEN getRow;
	
	REPEAT
		FETCH getRow INTO exam_id , exam_name;
		SELECT exam_id , exam_name FROM DUAL;
		 
	UNTIL flag = 0 END REPEAT;
	
	CLOSE getRow;
 END$
相关文章
相关标签/搜索