mysql儲存過程 游標使用

2021-08-17 16:43:33 字數 920 閱讀 9998

1.什麼是游標

需求:編寫儲存過程,使用游標,把uid為偶數的記錄逐一更新使用者名稱。

delimiter $$

create procedure testf(in my_userid varchar(32))

begin

declare stopflag int default 0;

declare my_uname varchar(32) default '';

declare uname_cur cursor for select uname from temp_user where uid%2=0;

#1 游標是儲存查詢結果的臨時記憶體區域

#2 游標變數uname_cur儲存了查詢的臨時結果,實際上就是查詢結果集

declare continue handler for not found set stopflag=1;

#3 宣告控制代碼,當游標變數中儲存的結果都查詢一遍(遍歷),到達結尾,就把變數stopflag設定為1 用於迴圈中判斷是否遍歷結束

open uname_cur; # 開啟游標

fetch uname_cur into my_uname; # 游標向前走一步,取出一條記錄放到變數my_uname中。

while(stopflag=0) do # 如果游標還沒到結尾,就繼續迴圈

begin

update temp_user set uname=concat(my_uname,'_cur') where uname=my_uname;

fetch uname_cur into my_uname;

end;

end while;

close uname_cur;

end;

$$delimiter ;

MySql 儲存過程游標使用示例

drop procedure if exists pro removebillremindbyuserid create procedure pro removebillremindbyuserid userid int begin declare ts varchar 500 declare cn...

mysql 儲存過程 游標的使用

儲存過程 create procedure changefrozen begin 定義變數 declare i int default 0 declare d int default 0 declare y id int declare y uid int declare y task id int...

Mysql 儲存過程使用游標

完整例子 create procedure test begin 定義引數 declare id int 定義游標 declare no more products int default 0 declare result test cursor for select num1 from numte...