zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    【动态规划】多重背包
    【动态规划】完全背包问题
    【背包问题】0-1背包、完全背包、多重背包、混合三种背包、二位费用背包、分组背包
    HDU1712ACboy needs your help【分组背包】
    关于kettle
    面向接口编程
    MS Sql添加描述信息 及其他信息
    记录我一个特别酷的梦
    EF 线程内唯一对象
    javascript 学习犯错记录
  • 原文地址:https://www.cnblogs.com/oushiyang/p/9238798.html
Copyright © 2011-2022 走看看