zoukankan      html  css  js  c++  java
  • mysql 游标查询

    引用:http://blog.csdn.net/a600423444/article/details/6424360

     1203人阅读 评论(0) 收藏 举报
    [c-sharp] view plaincopy
    1. CREATE PROCEDURE update_pointer()  
    2. BEGIN  
    3.     /* 定义变量一 */  
    4.     DECLARE  total float;  
    5.     DECLARE  uid int;  
    6.     DECLARE  _done int default 0;  
    7.     DECLARE currentP int default 0;  
    8.     DECLARE firstid int;  
    9.     DECLARE secondid int;  
    10.     DECLARE parentId VARCHAR(16);  
    11.     DECLARE first_jj_yy int default 0;#第一程基建燃油费  
    12.     DECLARE second_jj_ry int default 0;#第二程基建燃油费  
    13.     /* 定义光标 */  
    14.     DECLARE _Cur CURSOR FOR  
    15.             SELECT aliTotal,ordUID,flightId,backFliId FROM fightorder WHERE ordState=4;#主订单查询  
    16.     DECLARE _CurRex CURSOR FOR  
    17.         SELECT oeactTotal,ordId FROM flight_orderex WHERE oeState=4;  
    18.       
    19.       
    20.     DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;#错误定义,标记循环结束  
    21.       
    22.     /* 打开光标 */  
    23.     OPEN _Cur;  
    24.          /* 循环执行 */  
    25.          REPEAT  
    26.             FETCH _Cur INTO total, uid, firstid, secondid;  
    27.             IF NOT _done THEN  
    28.                 IF total>0 AND uid>0 THEN  
    29.                     SELECT fcn+fyq into first_jj_yy FROM flightlist WHERE flightId=firstid limit 1;  
    30.                     IF secondid>0 THEN  
    31.                         SELECT fcn+fyq into second_jj_ry FROM flightlist WHERE flightId=firstid limit 1;  
    32.                     END IF;  
    33.                     UPDATE sysusers SET integral=(integral+total)-(second_jj_ry+first_jj_yy) WHERE sysusers.UID=uid;  
    34.                 END IF;  
    35.             END IF;  
    36.          UNTIL _done END REPEAT; #当_done=1时退出被循  
    37.     /*关闭光标*/  
    38.     CLOSE _Cur;  
    39.     SET _done = 0;#只有定义为0,新的循环才能继续。  
    40.     OPEN _CurRex;  
    41.     REPEAT  
    42.         FETCH _CurRex INTO total,parentId;  
    43.         IF NOT _done THEN  
    44.             #IF total > 0 THEN  
    45.                 SELECT ordUID into uid FROM fightorder WHERE fightorder.alipayNo=parentId limit 1;#查询用户UID  
    46.                 #INSERT INTO test values(total,uid);  
    47.                 UPDATE sysusers SET integral=integral+total WHERE sysusers.UID=uid;#新增积分  
    48.             #END IF;  
    49.         END IF;  
    50.     UNTIL _done END REPEAT;  
    51.     CLOSE _CurRex;  
    52. END  
     
  • 相关阅读:
    cors允许的方法和contype-type
    解决Ubuntu 18.04中文输入法的问题
    "Visual Studio Code is unable to watch for file changes in this large workspace"
    设置spacevim字体显示乱码问题
    python3.6 +tkinter GUI编程 实现界面化的文本处理工具
    Python3.6的组件numpy的安装
    LinQ实战学习笔记(四) LINQ to Object, 常用查询操作符
    SharpGL学习笔记(十九) 摄像机漫游
    SharpGL学习笔记(十八) 解析3ds模型并显示
    SharpGL学习笔记(十七) 立体文字和平面文字
  • 原文地址:https://www.cnblogs.com/sode/p/3083555.html
Copyright © 2011-2022 走看看