闪客动漫天地论坛

首页 » 设计乐园 » 彩信制作乐园 » MySQL 存储过程中的循环操作
女女 - 2007-6-18 15:26:00
使用光标执行循环操作
DROP PROCEDURE IF EXISTS sp_opr;
CREATE PROCEDURE sp_opr()
BEGIN

    /**//* 定义变量一 */
    DECLARE _Err_Code CHAR(8) DEFAULT '';
    /**//* 定义变量二 */
    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;
----[url]http://www.cnblogs.com/chy710/archive/2007/06/13/782481.html[/url]
 1 
查看完整版本: MySQL 存储过程中的循环操作