相似於迭代器,將查詢結果經過迭代器一一取出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$