zoukankan      html  css  js  c++  java
  • MySQL 存储过程中的循环操作

    使用光标执行循环操作
    DROP PROCEDURE IF EXISTS sp_opr;
    CREATE PROCEDURE sp_opr()
    BEGIN

        
    /* 定义变量一 */
        
    DECLARE _Err_Code CHAR(8DEFAULT '';
        
    /* 定义变量二 */
        
    DECLARE _Cnt INT DEFAULT 0;
        
        
    /* 光标 */
        
    DECLARE _done INT DEFAULT 0;
        
    DECLARE _Cur_Error CURSOR FOR
            
    SELECT col1,col2 FROM table WHERE rec_dd=ADDDATE(CURDATE(),-1);
        
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
        
        
    /* 打开光标 */
        
    OPEN _Cur_Error;
            
    /* 循环执行 */
            REPEAT
              
    FETCH _Cur_Error INTO _Err_Code, _Cnt; --读取下一行
              
              
    IF NOT _done THEN
              
    -- 这里的代码被循环执行(这里可以使用上面读取的值)
              END IF;
              
            UNTIL _done 
    END REPEAT; --当_done=1时退出被循
            
        
    /*关闭光标*/
        
    CLOSE _Cur_Error;

    END;
  • 相关阅读:
    iscsi: 多路径
    Paxos算法分析
    ceph实践: 搭建环境
    ocfs2: 搭建环境
    设计模式:Context模式
    Ceph剖析:Leader选举
    Ceph剖析:定时器safetimer的实现
    nfs:环境搭建
    Ceph剖析:数据分布之CRUSH算法与一致性Hash
    Linux命令小结:crontab/netstat/iostat/sar
  • 原文地址:https://www.cnblogs.com/chy710/p/782481.html
Copyright © 2011-2022 走看看