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

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;

时间: 2024-09-15 01:17:06

【MySql】MySql存储,游标,循环的简单使用的相关文章

mysql 存储过程中游标与多游标实例

例  代码如下 复制代码 DELIMITER $$ DROP PROCEDURE IF EXISTS getUserInfo $$ CREATE PROCEDURE getUserInfo(in date_day datetime) -- -- 实例 -- MYSQL存储过程名为:getUserInfo -- 参数为:date_day日期格式:2008-03-08 --     BEGIN declare _userName varchar(12); -- 用户名 declare _chines

mysql数据库存储路径更改 数据文件位置

mysql数据库存储路径更改  使用了VPS一段时间之后发现磁盘空间快满了.本人的VPS在购买的时候买了500gb的磁盘,提供商赠送了20GB的高性能系统磁盘.这样系统就有两个磁盘空间了.在初次安装mysql 的时候将数据库目录安装在了系统盘.(第一个磁盘)使用了一段时间之后数据库存储量变大,快将20GB的存放空间占满了.因此必须将存放数据空间换地方了.嘿嘿下面是简单的操作了,不合理之处还请大侠们指点. 操作步骤:     1.检查mysql数据库存放目录     mysql -u root -

mysql让存储结果分页,用于复杂查询。(欢迎探讨)

mysql|分页 mysql让存储结果分页,用于复杂查询. 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出"所有"符合条件的记录,然后取出m,n条记录.如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦...mysql该很悲壮的不停操作硬盘. 所以,可以试着让mys

mysql 的存储引擎介绍

在数据库中存的就是一张张有着千丝万缕关系的表,所以表设计的好坏,将直接影响着整个数据库.而在设计表的时候,我们都会关注一个问题,使用什么存储引擎.等一下,存储引擎?什么是存储引擎? 什么是存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能. 例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL

mysql让存储结果分页,用于复杂查询

mysql让存储结果分页,用于复杂查询. 似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出"所有"符合条件的记录,然后取出m,n条记录.如果你的数据量有几十万条,用户又搜索一些很通俗的词,然后要依次读最后几页重温旧梦...mysql该很悲壮的不停操作硬盘. 所以,可以试着让mysql也存储分页,当

使用MySQL来存储FriendFeed的无模式的数据的方法

我们使用MySQL存储了FriendFeed的所有数据.数据库随着用户基数的增长而增长了很多.现在已经存储了超过2.5亿条记录与一堆涵盖了从评论和"喜欢"到好友列表的其他数据. 随着数据的增长,我们也曾迭代地解决了随着如此迅猛的增长而带来的扩展性问题.我们的尝试很有代表性,例如使用只读mysql从节点和memcache来增加读取吞吐量,对数据库进行分片来提高写入吞吐量.然而,随着业务的增长,添加新功能比扩展既有功能以迎合更多的流量变得更加困难. 特别的,对 schema 做改动或为超过

MySQL按照汉字的拼音排序简单实例

如果存储姓名的字段采用的是GBK字符集,那就好办了,因为GBK内码编码时本身就采用了拼音排序的方法(常用一级汉字3755个采用拼音排序,二级汉字就不是了,但考虑到人名等都是常用汉字,因此只是针对一级汉字能正确排序也够用了). 直接在查询语句后面 添加 order by name asc; 查询结果按照姓氏的升序排序: 如果存储姓名的字段采用的是 utf8字符集,需要在排序的时候对字段进行转码:对于的代码是  order by convert(name using gbk) asc; 同样,查询的

mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中?

问题描述 mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中? mysql cluster存储引擎NDB,如何设置哪些数据不被LOAD到内存中?

MySQL数据库存储引擎和分支现状

在MySQL经历了2008年Sun的收购和2009年Oracle收购Sun的过程中,基本处于停滞发展的情况,在可以预见的未来,MySQL是肯定会被Oracle搁置并且逐步雪藏消灭掉的.MySQL随着相应的各主创和内部开发人员的离去,缔造了各个不同的引擎和分支,让MySQL有希望继续发扬光大起来. 本文大致讲解一下MySQL目前除了主要的 MyISAM.InnoDB.Heap(Memory).NDB 等引擎之外的其他引擎的发展和现状,以及MySQL主干以外的分支的状况,为了我们未来更好的使用MyS

更改Mysql数据库存储位置的具体步骤

首先把mysql的服务先停掉,更改MySQL配置文件My.ini中的数据库存储主路径,将老的数据库存储主路径中的数据库文件和文件夹复制到新的存储主路径,接下来重启搞定   一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开MySQL默 认的安装文件夹C:Program FilesMySQLMySQL Server 5.1中的my.ini文件,点击记事本顶部的"编辑","查找",在查找内容中输入datadir后并点击&