mysql儲存過程之游標遍歷資料表

2021-09-08 19:19:29 字數 1614 閱讀 1037

原文:

mysql儲存過程之游標遍歷資料表

今天寫乙個mysql儲存過程,根據自己的需求要遍歷乙個資料表,因為對儲存過程用的不多,語法不甚熟悉,加之儲存過程沒有除錯環境,花了不少時間才慢慢弄好,故留個痕跡。

1  begin

2 declare done int default 0;

3

4 declare currentlingqi int;

5

6 declare shizuname varchar(30);

7 /* 宣告游標 */

8 declare rs cursor for select nodename, lingqi from socialrelation;

9 /* 異常處理 */

10 declare continue handler for sqlstate '02000' set done = 1;

11

12 /* 開啟游標 */

13 open rs;

14

15 /* 逐個取出當前記錄lingqi欄位的值,需要進行最大值的判斷 */

16 fetch next from rs into shizuname, currentlingqi;

17 /* 遍歷資料表 */

18 repeat

19 if not done then

20 set currentlingqi = currentlingqi + 60;

21 /* 如果更新後靈氣值大於允許的最大值,則就設定為最大值 */

22 if currentlingqi >= 1800 then

23 update socialrelation set lingqi = 1800 where nodename = shizuname;

24 else

25 /* 否則,正常更新 */

26 update socialrelation set lingqi = lingqi + 60 where nodename = shizuname;

27 end if;

28 end if;

29

30 fetch next from rs into shizuname, currentlingqi;

31 32 until done end repeat;

33

34 /* 關閉游標 */

35 close rs;

36 end

今天寫乙個mysql儲存過程,根據自己的需求要遍歷乙個資料表,因為對儲存過程用的不多,語法不甚熟悉,加之儲存過程沒有除錯環境,花了不少時間才慢慢弄好,故留個痕跡。

mysql儲存過程之游標遍歷資料表

出處 1 begin 2 declare done int default 0 3 4 declare currentlingqi int 5 6 declare shizuname varchar 30 7 宣告游標 8 declare rs cursor for select nodename,...

儲存過程之游標

游標 指標 1 select。into 注意 into 關鍵字後的變數要求先宣告 只能出現在儲存過程和觸發器,不能單獨使用 字段 數量 型別 要和變數一致 只能針對一行 返回標量值 搜尋的結果集為多條,移動指標 步驟 建立游標 開啟游標 獲取記錄 關閉游標 語法 declare 游標名稱 curso...

mysql儲存過程之游標篇

本篇主要參考mysql手冊 游標必須在宣告處理程式之前被宣告,並且變數和條件必須在宣告游標或處理程式之前被宣告。宣告游標 declare cursor name cursor for select statement 這個語句宣告乙個游標。也可以在子程式中定義多個游標,但是乙個塊中的每乙個游標必須有...