在儲存過程中可以使用游標對結果集進行迴圈處理,游標的使用包括游標的宣告、open、fetch、close。
語法如下:
--宣告游標
declare cur_name cursor for select_statement
--open游標
open cursor_name
--fetch 游標
fetch cursor_name into var_name [,var_name....]
--close游標
close cursor_name
舉例說明:
delimiter $$ --將;結束符改變為$$
--建立儲存過程
create procedure payment_amount()
begin
---宣告變數
declare i_staff_id int;
declare d_amount decimal(5,2);
---宣告乙個游標,獲取表payment裡的staff_id,amount列的值。
declare cur_payment cursor for select staff_id,amount from payment;
---條件處理,判斷迴圈結束的條件是 捕獲not found條件。
---當fecth 找不到下一條記錄時,就會關閉游標,退出過程。
declare exit handler for not found close cur_payment;
set @x1 = 0;
set @x2 = 0;
----開啟游標
open cur_payment;
repeat
fetch cur_payment into i_staff_id,d_amount;
if i_staff_id = 2 then
set @x1 = @x1 + d_amount;
else
set @x2 = @x2 + d_amount;
end if;
until 0 end repeat;
close cur_payment;
end;
$$delimiter ;
declare定義是有順序的:變數和條件必須放在前面、然後是游標的宣告、最後才可以是 處理程式的宣告。 mysql游標的型別 MySQL 游標
以下的文章主要介紹的是mysql游標的使用筆記,其可以用在儲存過程的sql語句,其主要型別主要有以下幾種,以下就是對其詳細介紹,相信如果你掌握了這項技術,會在以後的學習或是工作中帶來很大的幫助。1 無返回結果語句,如 insert,update,drop,delete等 2 select語句返回單行...
Mysql那些事兒
1 limit m,n如何優化?2 mysql 四種隔離級別 隔離級別 髒讀不可重複讀 幻讀未提交讀 可能可能 可能已提交讀 不可能可能 可能可重複讀 不可能不可能 可能可序列化 不可能不可能 不可能1.未提交讀 read uncommitted 允許髒讀,也就是可能讀取到其他會話中未提交事務修改的...
mysql游標切換 MySQL游標的使用
在編寫儲存過程時,查詢可能返回多條記錄,如果,資料量非常大,則需要使用游標來逐條讀取查詢結果集中的記錄 游標,是一種用於輕鬆處理多行資料的機制 游標的宣告 使用游標處理結果集中的資料,需要先宣告游標 游標,必須宣告在宣告變數 條件之後,宣告處理程式之前 mysql中,使用declare關鍵字來宣告游...