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$
相關文章
相關標籤/搜索