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. 简谈 JavaScript、Java 中链式方法调用大致实现原理

    相信,在 JavaScript .C# 中都见过不少链式方法调用,那么,其中实现该类链式调用原理,大家有没有仔细思考过?其中 JavaScript 类库:jQuery 中就存在大量例子,而在 C# 中 ...

  2. [C#] Control.Invoke方法和跨线程访问控件

    在设计界面时,我们经常需要将一些需要时间才能完成的操作放在另一个线程(不同于UI主线程)中执行.但是这些操作可能需要将其结果或完成情况通知主线程,比如调用窗体的方法,或者触发事件(由界面响应事件),很 ...

  3. linux自己带的apache重新启动

    如果是linux自己带的apache的话就使用命令 service httpd start 启动 service httpd stop 关闭 service httpd restart 重新启动 如果 ...

  4. 关于打包android自己编写的第三方library提供jar

    最近公司要求把应用的接口写成sdk提供给别人使用,写好了之后,发现导出来jar包怎么使用也有误,在运行时会报java.lang.NoClassDefFoundError的错,于是纠结了很久,突然在博客 ...

  5. delphi 判断是否出现滚动条

    delphi 判断是否出现滚动条     if (GetWindowlong(Stringgrid1.Handle, GWL_STYLE) and WS_VSCROLL) <> 0 the ...

  6. 关于Android与pc通信时中文乱码的分析和解决

    初步实现了Android与pc服务器的通信之后,又碰到了传说中令人头疼不已的中文乱码问题.既然出现了乱码,那么原因自然是协议不通了.我们知道eclipse中默认的编码标准是GBK,而安卓程序开发所默认 ...

  7. Scrapy 对不同的Item进行分开存储

    在Piperlines里面进行对象的判断, def process_item(self, item, spider): if item.__class__ == BaseItem : #savexxx ...

  8. centos x86_64--------------------------------系统调用

    http://blog.csdn.net/hmsiwtv/article/details/11022241 [root@monitor ~]# cat /usr/include/asm/unistd. ...

  9. VMware 9 安装 OS X 10.8.4 并安装 Xcode 4.6

    转自:http://blog.csdn.net/weizi4332/article/details/9264799 学习Objective-C必须要有运行环境,Xcode是最好的选择.不过Window ...

  10. 一个想法(续二):换个角度思考如何解决IT企业招聘难的问题!

    前言: 上一篇文章:一个想法:成立草根技术联盟对开发人员进行技术定级解决企业员工招聘难问题! 当时写文的思维,是从一个公益组织的角度的思考. 因此,有不少关于从利出发的反方观点,的确是值的思考! 任何 ...