1. 程式人生 > >Mysql儲存過程遊標使用

Mysql儲存過程遊標使用

--在windows系統中寫儲存過程時,如果需要使用declare宣告變數,需要新增這個關鍵字,否則會報錯。
delimiter //
drop procedure if exists StatisticStore;
CREATE PROCEDURE StatisticStore()
BEGIN
	--建立接收遊標資料的變數
	declare c int;
	declare n varchar(20);
	--建立總數變數
	declare total int default 0;
	--建立結束標誌變數
	declare done int default false;
	--建立遊標
	declare cur cursor for select name,count from store where name = 'iphone';
	--指定遊標迴圈結束時的返回值
	declare continue HANDLER for not found set done = true;
	--設定初始值
	set total = 0;
	--開啟遊標
	open cur;
	--開始循環遊標裡的資料
	read_loop:loop
	--根據遊標當前指向的一條資料
	fetch cur into n,c;
	--判斷遊標的迴圈是否結束
	if done then
		leave read_loop;	--跳出遊標迴圈
	end if;
	--獲取一條資料時,將count值進行累加操作,這裡可以做任意你想做的操作,
	set total = total + c;
	--結束遊標迴圈
	end loop;
	--關閉遊標
	close cur;
 
	--輸出結果
	select total;
END;
--呼叫儲存過程
call StatisticStore();