存储过程游标

CREATE DEFINER=`root`@`localhost` PROCEDURE `test10`()

BEGIN

#存储过程游标的使用20190107

DECLARE stopflag int DEFAULT  0 ;#定义一个停止的标志,没有停止就是0,停止了就是1

DECLARE my_uname varchar(32) DEFAULT'';#把uname取出来再做进一步的修改

#游标就是一个查询的结果集,它保存到一个变量中

DECLARE uname_cur CURSOR for SELECT uname FROM users where uid%2 = 0;#游标指定一个查询使用for

#定义一个到达结尾的时候应该把stopflag重置为什么值

#(声明游标句柄)CONTINUE HANDLER就是一个游标的句柄,它会跟踪上一个游标的变量,当到达游标最后的时候,设置标志位1

# 设置为1的目标用于后面条件语句或者循环语句进行对值的判断以便判断它是否继续

DECLARE CONTINUE HANDLER for not found set stopflag = 1;

#打开游标,就是把这个结果集开始使用

open uname_cur;

#取 每取一次只取一条记录,取一次往前走一步,

FETCH uname_cur into my_uname;

while (stopflag = 0 ) do

begin

#加一个_cur说明游标是更新的:即在uid为偶数的名字后加_cur

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

FETCH uname_cur into my_uname;

end;

end while ;

#跳出循环说明游标已经达到结尾,保存的变量uname_cur是放在内存中的,如果不释放它,占用的内存资源就会一直保存。

#所以要关闭游标,关闭占用的内存资源

close uname_cur;

END

视频总结:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值