相似于迭代器,将查询结果经过迭代器一一取出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
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$