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

BEGIN

#定义各种变量,其中tid_是从输入参数
declare title_ VARCHAR(255);
declare cuid VARCHAR(255);
declare uid VARCHAR(64);
declare uid_ VARCHAR(64);
declare loc INT DEFAULT 2;
declare size INT DEFAULT 1;
declare confim VARCHAR(255);
declare confim_ VARCHAR(255);
declare cunt INT;

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

#concat拼接函数
#select CONCAT('|',confim) into confim; #这是获取字符串中“|”符号的个数
select LENGTH(confim)-LENGTH( REPLACE(confim,'|','') ) into size;
#select size; select count(*) into cunt from dyoa_confirm_list where tid = tid_; if cunt > 0 THEN
delete from dyoa_confirm_list where tid = tid_;
#select tid_;
end if; while size>0 do

#substring,截取字符串
select SUBSTRING_INDEX(confim, '|', 1) into cuid;
#select cuid; #select REPLACE(confim,cuid,'') into confim_;
select SUBSTRING_INDEX(confim, '|', -size) into confim_;
select confim_; set confim = confim_; SELECT SUBSTRING(cuid,4) into uid;
#select uid;
select REPLACE(uid,'_','') into uid_;
select uid_; set size = size - 1;
#select size;
#select POSITION('|' IN confim, '|', size) into loc;
#select loc; #while size>0 do insert into dyoa_confirm_list(uid,tid,status,mark,ctime,utime) values(uid_,tid_,1,'shenpi',UNIX_TIMESTAMP(),UNIX_TIMESTAMP()); #set loc = loc + 1; end while; end if; 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. Netty4.x中文教程系列(五)编解码器Codec

    Netty4.x中文教程系列(五)编解码器Codec 上一篇文章详细解释了ChannelHandler的相关构架设计,版本和设计逻辑变更等等. 这篇文章主要在于讲述Handler里面的Codec,也就 ...

  2. springboot源码解析 - 构建SpringApplication

    1 package com.microservice.framework; 2 3 import org.springframework.boot.SpringApplication; 4 impor ...

  3. ajax练习四留言板

    留言界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...

  4. R语言学习笔记——Base Graphics

    做exploratory data annalysis的作业,差点被虐死了,R从头开始,边做边学,最后搞到一点多才弄完,还有一个图怎么画都不对,最后发现是数据读取的时候有问题. 用来画图的数据来自:h ...

  5. JS方法

    1.方法可作为对象使用 function aa() { this.a = "aaaa"; this.b = 23; this.f = function () { alert(thi ...

  6. Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(二)

    然后是项目下的文件:完整的项目请看  上一篇 Maven+Spring+Hibernate+Shiro+Mysql简单的demo框架(一) 项目下的springmvc-servlet.xml配置文件: ...

  7. mvp(1)简介及它与mvc区别

    注意:它们是软件架构,不是设计模式 左边mvc    右边mvp MVC和MVP的区别? MVP 是从经典的MVC架构演变而来,它们的基本思想有相通的地方:Controller/Presenter负责 ...

  8. Android Touch(1)事件的传递流程(*)

    1,Activity,ViewGroup,View的关系 2,触摸事件 3,传递事件时的重要函数 4,事件传递流程参考图 5,其它参考资料 1,Activity,ViewGroup,View的关系 本 ...

  9. PS太大GIMP可用

    图片处理中Photoshop用的非常多,但是该软件过于臃肿,使用起来也非常复杂,对于一般性的图片处理,有没有其他可以选择的工具呢? GIMP是GNU Image Manipulation Progra ...

  10. 听说noip2015有幻方

    终于可以说一句:pascal大法好了 magic.pp是写好的算幻方哦…… 虽然这种水题大家都会,也没什么卵用……