ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【MySql】MySql存储,游标,循环的简单使用

【MySql】MySql存储,游标,循环的简单使用

原创 Linux操作系统 作者:杨奇龙 时间:2011-08-03 17:00:54 0 删除 编辑
MySql存储,游标,循环
CREATE PROCEDURE `copy_group`(IN v_sourcegroupid int,IN v_destgroupid int,IN v_projectid int)
BEGIN
      --声明变量
      declare v_oldtestcaseid int;
      declare v_testcaseid int;
      declare v_stepid int;
      declare v_id int;
      declare v_caseid  类型;
      declare v_testcasename 类型;
      declare v_description 类型;
      declare v_caselevel  类型;
      declare v_runner  类型;
      declare v_classname 类型;
      declare stop int default 0;--终止标记  
      --声明游标 
      declare cur cursor for (select caseid,testcasename,description,caselevel,runner,classname from tc_case  
            where groupid=v_sourcegroupid);
      -- 声明游标的异常处理,设置一个终止标记 
      declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop=1; 
      --打开游标 
      OPEN cur;
      --获取数据到变量
      FETCH cur INTO v_caseid,v_testcasename,v_description,v_caselevel,v_runner,v_classname;
      --判断是否终止
      WHILE stop <> 1 DO
              insert into tc_case(testcasename,description,caselevel,runner,classname,groupid,create_time,update_time)
                     values(testcase.testcasename,testcase.description,testcase.caselevel,testcase.runner,testcase.classname,v_destgroupid,now(),now());
              v_testcaseid = mysql_insert_id();
              v_oldtestcaseid = testcase.caseid;
              --获取下一行数据。
              FETCH cur INTO v_caseid,v_testcasename,v_description,v_caselevel,v_runner,v_classname;
        END WHILE;
        --关闭游标
        CLOSE cur;             
        insert into tc_group(groupname,projectid,runner,description,create_time,update_time,parentid)
         select groupname,v_projectid,runner,description,now(),now(),v_destgroupid from tc_group
            where groupid = v_sourcegroupid;
END;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-704002/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
MySQL DBA NoSQL DEVOPS

注册时间:2009-10-07

  • 博文量
    1026
  • 访问量
    7721026