这篇并不是说如何去写存贮过程,只是自己以前在测试过程中主要是查看,获取数据库里的数据,偶尔删除一些脏数据。然后这次因为手动测试组想做一个批量审批的测试,因为流程繁杂,因此想用一种快速的方式去做,于是就想到了存贮过程直接操作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. C++多继承的观察和7点体会(都是实用派的观点) good

    这历来是一个受争议的话题,书上的样板话我就不说了.我只说说自己的一点观察和体会: 1. 多重继承在理论上是有道理,21天学通C++里举了一个例子,就是飞马继承于飞鸟(会飞)和马(会跑),你可以定义一个 ...

  2. POJ 1903 & ZOJ 2469 & UVA 1326 Jurassic Remains (部分枚举)

    题意:给定n个只有大写字母组成的字符串,选取尽可能多的字符串,使得这些字符串中每个字母的个数都是偶数.n<=24 思路:直接枚举每个字符串的选或不选,复杂度是O(2^n).其实还有更简便的方法. ...

  3. pythonhttp

    import urllib.requestimport http.cookiejar from urllib.error import URLError,HTTPError import urllib ...

  4. CF 314C Sereja and Subsequences(树状数组)

    题目链接:http://codeforces.com/problemset/problem/314/C 题意:给定一个数列a.(1)写出a的不同的所有非下降子列:(2)定义某个子列的f值为数列中各个数 ...

  5. Hadoop集群(第10期副刊)_常用MySQL数据库命令

    1.系统管理 1.1 连接MySQL 格式: mysql -h主机地址 -u用户名 -p用户密码 举例: 例1:连接到本机上的MySQL. 首先在打开DOS窗口,然后进入目录 mysqlbin,再键入 ...

  6. Android开源库--ActiveAndroid(active record模式的ORM数据库框架)

    Github地址:https://github.com/pardom/ActiveAndroid 前言 我一般在Android开发中,几乎用不到SQLlite,因为一些小数据就直接使用Preferen ...

  7. Mybatis返回插入的主键

    在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 情景一:针对自增主键的表,在插入时不 ...

  8. HDU 2553 (状压) N皇后问题 (2)

    也许大多数做法都是打表,但这里用位运算的思想来解决这个问题,位运算果然强大,Orz 原文地址,感觉讲的很明白了: http://www.cnblogs.com/gj-Acit/archive/2013 ...

  9. HDU 2062 Subset sequence

    我是把它当做一道数学题来做的. 这篇题解写的有点啰嗦,但是是我最原始的思维过程. 对于一个集合An= { 1, 2, …, n },在n比较小的情况下,在纸上按字典顺序把所有子集排列一下. 以n=3, ...

  10. (转载)DataTable使用技巧总结

    在项目中经常用到DataTable,如果DataTable使用得当,不仅能使程序简洁实用,而且能够提高性能,达到事半功倍的效果,现对DataTable的使用技巧进行一下总结.         一.Da ...