游标使用

CREATE DEFINER=`root`@`localhost` PROCEDURE `use1`()
begin
         DECLARE myid VARCHAR(255);
         DECLARE no int;
         DECLARE mycursor CURSOR FOR  SELECT `name` from score  where `name` ='张三';
                 #把select出来的数据全部保存到游标mycursor中
         DECLARE CONTINUE HANDLER FOR NOT FOUND SET no=1; #当读到数据的最后一条时,设置no变量为1
         SET no=0; #初始化变量no为0
         OPEN mycursor; #打开游标
                 
         while no=0 do #判断是不是到了最后一条数据
         fetch mycursor into myid; #读取游标中的数据一一复给变量myid。
                 #此处进行逻辑处理                                                
                 UPDATE score set time =NOW() where  `name`=myid ;
                 
             end while;#结束while
         close mycursor;#最后关闭游标.游标里面存放了那么多数据总是要清理掉的吧。
end

 

posted @ 2021-04-01 09:17  我没有出家  阅读(27)  评论(0编辑  收藏  举报