mysql存储过程的学习(二)

游标的使用

存储过程里面,如果查询到的结果,是一个集合,如果我们要从这个集合里面筛选出来一部分我们需要的数据,就会用到游标

因为游标一个结果集 然后一个结果一个结果的遍历,然后在每一个结果里面去拿你想要的东西

创造一个带有游标的存储过程

CREATE PROCEDURE `zhenyoubiao`()

BEGIN-- 首先我们需要定义几个参数这几个参数主要是用来保存我们想要的东西,

-- 定义接受游标里面的数据
DECLARE i int DEFAULT 0;

DECLARE cur_userName VARCHAR(20);
DECLARE cur_age int DEFAULT 0;

-- 这里的_STOP 主要是为了判断当我们遍历游标的时候发现没有结果 直接就把循环结束了
DECLARE _STOP INT DEFAULT 0;

-- 这里的wonima 就是建好的游标  我们把查询到的数据直接放到这个游标里面去

DECLARE wonima CURSOR FOR
SELECT user_name,age from u_user where id =2;

-- 定义遍历的时候游标里面没有数据直接就停止
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _STOP=1;

-- 打开游标
OPEN wonima;

-- 使用while循环进行遍历
WHILE _STOP<>1 DO

-- 提取游标里面的值
FETCH wonima into cur_userName,cur_age;

-- 对这一行结果进行操作
insert into u_user (user_name,age)values(cur_userName,cur_age);
set i=i+1;

-- 结束while循环
end WHILE;

-- 结束游标

CLOSE wonima;
END;

调用这个存储过程

CALL zhenyoubiao();

给个链接里面有遍历游标的方式https://www.cnblogs.com/Luouy/p/7301360.html?utm_source=itdadao&utm_medium=referral

猜你喜欢

转载自www.cnblogs.com/oushiyang/p/9238798.html