zoukankan      html  css  js  c++  java
  • MySql使用游标Cursor循环(While)更新数据

    #要修改的变量

    DECLARE var_ID VARCHAR(50) DEFAULT '';

    #需要修改的数据的数量

    DECLARE var_UpdateCount INT;

    #当前循环次数

    DECLARE var_WhileTimes INT;

    #定义游标

    DECLARE var_Cur CURSOR FOR

    SELECT id FROM table_Name;

    #打开游标

    OPEN var_Cur;

    #将游标的数据进行赋值

    FETCH var_Cur INTO var_ID;

    #获取循环次数

    SELECT COUNT(1) FROM table_Name;

    #开始循环

    cur_While:WHILE (var_WhileTimes <= var_UpdateCount) DO

    #更新数据

    UPDATE table_Name SET column_Name = var_ID ;

    #下一循环

    FETCH var_Cur INTO var_ID;

    #结束循环

    END WHILE;

    此为非常简单的一个示例,记录这部分代码的原因是:第一次写MySql的存储,在利用游标循环更新数据时,如果在循环中,有select语句且查询结果为null时,如果这时使用的是DECLARE CONTINUE HANDLER的方式的话,就会直接跳出循环了,但是这个方式不会,虽然在循环开始之前,又提前查询了一下需要循环的次数,但是这么一个简单的查询语句一般对效率几乎没什么影响,当然,查询游标结果集的语句本身就特别复杂的话另论;记录一下这个经验,在分享的同时,也方便以后参考;刚接触MySql,不足之处,欢迎指教;

  • 相关阅读:
    【Linux】ZeroMQ 在 centos下的安装
    ZeroMQ下载、编译和使用
    在Linux系统上安装Git
    Linux下python2.7安装pip
    [Tyvj1474]打鼹鼠
    [BZOJ2908]又是nand
    [SPOJ375]Qtree
    浅谈算法——树链剖分
    [BZOJ5368/Pkusc2018]真实排名
    [FJOI2007]轮状病毒
  • 原文地址:https://www.cnblogs.com/JosephBee/p/4435526.html
Copyright © 2011-2022 走看看