BEGIN
#Routine body goes here...
####所有的2个小时之前生成的待支付订单更新为已过期
DECLARE tmp_id INT;
DECLARE tmp_order_id VARCHAR(22);
DECLARE flag INT;
DECLARE update_cursor CURSOR FOR SELECT id, order_id FROM yjl_item_order WHERE order_status = 0 AND add_time < DATE_SUB(NOW(),INTERVAL 2 HOUR);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag=1;
SET flag=0;
OPEN update_cursor;
loop_xx1: LOOP /*循环*/
FETCH update_cursor INTO tmp_id,tmp_order_id;
IF flag=1 THEN
leave loop_xx1;
END IF;
BEGIN
DECLARE tmp_price_id INT;
DECLARE tmp_num INT;
DECLARE flag1 INT;
DECLARE cursor2 CURSOR FOR SELECT price_id,code_num FROM yjl_order_info WHERE order_id = tmp_order_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET flag1=1;
###更新此订单的抵价券和邀请码
UPDATE log_member_voucher a LEFT JOIN yjl_member_voucher b ON a.mixed_id = b.id SET a.status = 3, b.voucher_status = 0 WHERE a.order_id =

tmp_order_id AND a.status = 0;
UPDATE yjl_item_order SET order_status = 2 WHERE id = tmp_id;

SET flag1=0;
OPEN cursor2;
loop_xx2: LOOP
FETCH cursor2 INTO tmp_price_id, tmp_num;
IF flag1=1 THEN
leave loop_xx2;
END IF;
###库存回滚
UPDATE yjl_item_store SET realse_num = realse_num + tmp_num WHERE price_id = tmp_price_id;
END LOOP;
END;
/*update set where*/
END LOOP;
CLOSE update_cursor ;
END

mysql 游标嵌套循环实例的更多相关文章

  1. SqlServer和MySQL游标学习

    一 sqlserver游标使用 /*** 游标的使用  讲了这个多游标的优点,现在我们就亲自来揭开游标的神秘的面纱.  使用游标的顺序: 声名游标.打开游标.读取数据.关闭游标.删除游标. 1.3.1 ...

  2. MySQL存储过程使用实例详解

    本文介绍关于在MySQL存储过程游标使用实例,包括简单游标使用与游标循环跳出等方法 例1.一个简单存储过程游标实例 DROP PROCEDURE IF EXISTS getUserInfo $$CRE ...

  3. mysql sql优化实例

    mysql sql优化实例 优化前: pt-query-degist分析结果: # Query 3: 0.00 QPS, 0.00x concurrency, ID 0xDC6E62FA021C85B ...

  4. MySQL游标操作指南

    本篇文章是对MySQL游标的具体使用进行了详细的分析介绍,需要的朋友参考下   测试表 level  代码如下: create table test.level (name varchar(20)); ...

  5. 个人笔记mysql游标

    经过测试,mysql游标是无法读取自定义函数计算的结构,mysql自带的函数计算值是可以读取的.

  6. MySQL游标的简单实践

    Q:为什么要使用游标? A: 在存储过程(或函数)中,如果某条select语句返回的结果集中只有1行,可以使用select into语句(上几篇博客有介绍到用法)来得到该行进行处理:如果结果集中有多行 ...

  7. mysql触发器trigger 实例详解

    mysql触发器trigger 实例详解 (转自 https://www.cnblogs.com/phpper/p/7587031.html)   MySQL好像从5.0.2版本就开始支持触发器的功能 ...

  8. mysql 游标 demo

    一.MySQL游标的概念 1.游标介绍 MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解. 有数据缓冲的思想:游标的设计是一种数据缓冲区的思想 ...

  9. MySQL增量备份与恢复实例【转】

    小量的数据库可以每天进行完整备份,因为这也用不了多少时间,但当数据库很大时,就不太可能每天进行一次完整备份了,这时候就可以使用增量备份.增量备份的原理就是使用了mysql的binlog日志.本次操作的 ...

随机推荐

  1. 初识FreeMarker

    一.什么是FreeMarker? FreeMarker基于设计者和程序员是具有不同专业技能的不同个体的观念 他们是分工劳动的:设计者专注于表示——创建HTML文件.图片.Web页面的其它可视化方面: ...

  2. Android Touch事件传递机制通俗讲解

    在讲正题之前我们讲一段有关任务传递的小故事,抛砖迎玉下: 话说一家软件公司,来一个任务,分派给了开发经理去完成: 开发经理拿到,看了一下,感觉好简单,于是 开发经理:分派给了开发组长 开发组长:分派给 ...

  3. IE自动化

    自动打开www.baidu.com,并搜索关键字“abcd” #定义函数:等待页面打开 function WaitForLoad($ie) { sleep 2 do {Sleep -Mi 200} w ...

  4. Codeforces Round #328 (Div. 2) C. The Big Race 数学.lcm

    C. The Big Race Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/592/probl ...

  5. Codeforces Round #Pi (Div. 2) E. President and Roads tarjan+最短路

    E. President and RoadsTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/567 ...

  6. Codeforces Gym 100342E Problem E. Minima 暴力

    Problem E. MinimaTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attac ...

  7. delphi 使用进度条查看浏览器状态

    使用进度条查看浏览器状态     procedure TForm1.WebBrowser1ProgressChange(ASender: TObject; Progress,  ProgressMax ...

  8. MFC Windows程序设计源代码免费下载

    本人近期在网上找到了<MFC Windows程序设计>第二版的书内程序的源代码,特意上传CSDN上面,供学习MFC的程序猿们免费下载. 源代码下载: http://download.csd ...

  9. 模式识别 - 处理多演示样例学习(MIL)特征(matlab)

    处理多演示样例学习(MIL)特征(matlab) 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27206325 多演示样例学习( ...

  10. iOS开发——设备篇&ios8文件路径

    ios8文件路径 1,之前版本的(比如iOS7)的文件路径如下:  app路径  /var/mobile/Applications/59C84B75-0900-43D6-AD6F-AB9731F064 ...