且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

MySQL 存储过程中的循环操作

更新时间:2022-09-19 18:37:54

使用光标执行循环操作
MySQL 存储过程中的循环操作DROP PROCEDURE IF EXISTS sp_opr;
MySQL 存储过程中的循环操作
CREATE PROCEDURE sp_opr()
MySQL 存储过程中的循环操作
BEGIN
MySQL 存储过程中的循环操作
MySQL 存储过程中的循环操作    
/* 定义变量一 */
MySQL 存储过程中的循环操作    
DECLARE _Err_Code CHAR(8DEFAULT '';
MySQL 存储过程中的循环操作    
/* 定义变量二 */
MySQL 存储过程中的循环操作    
DECLARE _Cnt INT DEFAULT 0;
MySQL 存储过程中的循环操作    
MySQL 存储过程中的循环操作    
/* 光标 */
MySQL 存储过程中的循环操作    
DECLARE _done INT DEFAULT 0;
MySQL 存储过程中的循环操作    
DECLARE _Cur_Error CURSOR FOR
MySQL 存储过程中的循环操作        
SELECT col1,col2 FROM table WHERE rec_dd=ADDDATE(CURDATE(),-1);
MySQL 存储过程中的循环操作    
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET _done = 1;
MySQL 存储过程中的循环操作    
MySQL 存储过程中的循环操作    
/* 打开光标 */
MySQL 存储过程中的循环操作    
OPEN _Cur_Error;
MySQL 存储过程中的循环操作        
/* 循环执行 */
MySQL 存储过程中的循环操作        REPEAT
MySQL 存储过程中的循环操作          
FETCH _Cur_Error INTO _Err_Code, _Cnt; --读取下一行
MySQL 存储过程中的循环操作
          
MySQL 存储过程中的循环操作          
IF NOT _done THEN
MySQL 存储过程中的循环操作          
-- 这里的代码被循环执行(这里可以使用上面读取的值)
MySQL 存储过程中的循环操作
          END IF;
MySQL 存储过程中的循环操作          
MySQL 存储过程中的循环操作        UNTIL _done 
END REPEAT; --当_done=1时退出被循
MySQL 存储过程中的循环操作
        
MySQL 存储过程中的循环操作    
/*关闭光标*/
MySQL 存储过程中的循环操作    
CLOSE _Cur_Error;
MySQL 存储过程中的循环操作
MySQL 存储过程中的循环操作
END;
本文转自chy710博客园博客,原文链接:http://www.cnblogs.com/chy710/archive/2007/06/13/782481.html,如需转载请自行联系原作者