Mysql那些事兒之(十四)游標的使用

2021-09-01 13:35:28 字數 1207 閱讀 7796

在儲存過程中可以使用游標對結果集進行迴圈處理,游標的使用包括游標的宣告、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關鍵字來宣告游...