这篇并不是说如何去写存贮过程,只是自己以前在测试过程中主要是查看,获取数据库里的数据,偶尔删除一些脏数据。然后这次因为手动测试组想做一个批量审批的测试,因为流程繁杂,因此想用一种快速的方式去做,于是就想到了存贮过程直接操作db。这也是第一次写这玩意,边查边写,最后也踉踉跄跄的写出来了,其实就和咱们平时用开发语言写脚本差不多,知识基础的语法不通罢了。下面直接贴上代码,留在这里也算是一个节点。

  1. BEGIN
  2.  
  3. #定义各种变量,其中tid_是从输入参数
  4. declare title_ VARCHAR(255);
  5. declare cuid VARCHAR(255);
  6. declare uid VARCHAR(64);
  7. declare uid_ VARCHAR(64);
  8. declare loc INT DEFAULT 2;
  9. declare size INT DEFAULT 1;
  10. declare confim VARCHAR(255);
  11. declare confim_ VARCHAR(255);
  12. declare cunt INT;

  13. #这里有一个关键字into,就是把查询到的结果保存到title_变量,下面还有一个select title_语句,这表示执行时把变量显示出来,有点类似print的意思
  14.   select title into title_ from dyoa_task where id = tid_;
  15. select confirm into confim from dyoa_task where id = tid_;
  16. update dyoa_task SET status = 1, doing = '', do_after = '', do_berfor = confim WHERE id = tid_;

  17. #concat拼接函数
  18. #select CONCAT('|',confim) into confim;
  19.  
  20. #这是获取字符串中“|”符号的个数
  21. select LENGTH(confim)-LENGTH( REPLACE(confim,'|','') ) into size;
  22. #select size;
  23.  
  24. select count(*) into cunt from dyoa_confirm_list where tid = tid_;
  25.  
  26. if cunt > 0 THEN
  27. delete from dyoa_confirm_list where tid = tid_;
  28. #select tid_;
  29. end if;
  30.  
  31. while size>0 do

  32. #substring,截取字符串
  33. select SUBSTRING_INDEX(confim, '|', 1) into cuid;
  34. #select cuid;
  35.  
  36. #select REPLACE(confim,cuid,'') into confim_;
  37. select SUBSTRING_INDEX(confim, '|', -size) into confim_;
  38. select confim_;
  39.  
  40. set confim = confim_;
  41.  
  42. SELECT SUBSTRING(cuid,4) into uid;
  43. #select uid;
  44. select REPLACE(uid,'_','') into uid_;
  45. select uid_;
  46.  
  47. set size = size - 1;
  48. #select size;
  49. #select POSITION('|' IN confim, '|', size) into loc;
  50. #select loc;
  51.  
  52. #while size>0 do
  53.  
  54. insert into dyoa_confirm_list(uid,tid,status,mark,ctime,utime) values(uid_,tid_,1,'shenpi',UNIX_TIMESTAMP(),UNIX_TIMESTAMP());
  55.  
  56. #set loc = loc + 1;
  57.  
  58. end while;
  59.  
  60. end if;
  61.  
  62. END

整个代码功能其实不负责,主要是一些字符串的处理占了一些代码。

mysql存贮过程编写的更多相关文章

  1. Mysql加锁过程详解(6)-数据库隔离级别(1)

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  2. MySQL 储存过程-原理、语法、函数详细说明

    Mysql储存过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,当需要使用该组SQL语句时用户只需要通过指定储存过程的名字并给定参数就可以调用执行它了,简而言之就是一组已经写好的命 ...

  3. MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法

    MySQL安装过程net start mysql 启动失败 报“错误2,系统找不到文件”的解决办法 错误2,系统找不到文件. 开始...运行... regedit  注册表项: HKEY_LOCAL_ ...

  4. mysql安装过程中出现错误ERROR 1820 (HY000): You must SET PASSWORD before executing this statement解决

    mysql安装过程中出现错误ERROR 1820 (HY000): You must SET PASSWORD before executing this statement解决   最近新装好的my ...

  5. MySQL关闭过程详解和安全关闭MySQL的方法

    MySQL关闭过程详解和安全关闭MySQL的方法 www.hongkevip.com 时间: -- : 阅读: 整理: 红客VIP 分享到: 红客VIP(http://www.hongkevip.co ...

  6. 24、jQuery常用AJAX-API/Java调用MySQL / Oracle过程与函数

      1)掌握jQuery常用AJAX-API 2)掌握Java调用MySQL / Oracle过程与函数 一)jQuery常用AJAX-API 目的:简化客户端与服务端进行局部刷新的异步通讯 (1)取 ...

  7. mysql 安装过程中的错误:my-template.ini could not be processed and written to XXX\my.ini.Error code-1

    安装mysql的过程中,在最后配置mysql时,提示错误:Configuration file tmeplate E:\编程\MySQL\my-template.ini could not be pr ...

  8. Mysql加锁过程详解(8)-理解innodb的锁(record,gap,Next-Key lock)

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

  9. Mysql加锁过程详解(9)-innodb下的记录锁,间隙锁,next-key锁

    Mysql加锁过程详解(1)-基本知识 Mysql加锁过程详解(2)-关于mysql 幻读理解 Mysql加锁过程详解(3)-关于mysql 幻读理解 Mysql加锁过程详解(4)-select fo ...

随机推荐

  1. 一行代码设置TLabel.Caption的前世今生

    第零步,测试代码: procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption := 'Hello World'; end ...

  2. photoshopCS4换中文

    有些朋友的安装的时候可能安装界面是全中文的,安装完软件是英文的. 下载这个中文包, http://download.csdn.net/download/tuberose1605/5171091 解压后 ...

  3. MySql存储引擎特性对比

    下表显示了各种存储引擎的特性: 其中最常见的两种存储引擎是MyISAM和InnoDB 刚接触MySQL的时候可能会有些惊讶,竟然有不支持事务的存储引擎,学过关系型数据库理论的人都知道,事务是关系型数据 ...

  4. http://my.oschina.net/u/2007041/blog/508520

    http://my.oschina.net/u/2007041/blog/508520

  5. 机器人学 —— 轨迹规划(Configuration Space)

    之前的轨迹规划中,我们只考虑了质点,没有考虑机器人的外形与结构.直接在obstacle map 中进行轨迹规划,然而世纪情况中,机器人有固定外形,可能会和障碍物发生碰撞.此情况下,我们针对机器人自由度 ...

  6. USACO Section 2.3: Zero Sum

    这题我做得比较麻烦,网上有个比较简单的程序. /* ID: yingzho1 LANG: C++ TASK: zerosum */ #include <iostream> #include ...

  7. vb.net 写入文件同步锁

    <SoapHeader("oHeader")> _ <WebMethod()> _ <ScriptMethod(ResponseFormat:=Res ...

  8. 谈谈防止Ajax重复点击提交

    首先说说防止重复点击提交是什么意思. 我们在访问有的网站,输入表单完成以后,单击提交按钮进行提交以后,提交按钮就会变为灰色,用户不能再单击第二次,直到重新加载页面或者跳转.这样,可以一定程度上防止用户 ...

  9. MAVEN “Plugin execution not covered by lifecycle configuration”

    pom文件中报错提示: Plugin execution not covered by lifecycle configuration: net.alchim31.maven:yuicompresso ...

  10. dataTables表格分页排序等交互

    官网: https://www.datatables.net/ 中文参考网站: http://datatables.club/ datatables+bootstrap示例: http://sandb ...