MySQL存储过程–>通过游标遍历和异常处理迁移数据到历史表

— 大表数据迁移,每天凌晨1点到5点执行,执行间隔时间10分钟,迁移旧数据到历史表。

DELIMITER $$     USE `dbx`$$     DROP PROCEDURE IF EXISTS `pro_xx`$$     CREATE  PROCEDURE `pro_xx`()  BEGIN       DECLARE p_oalid INT default 0;     DECLARE STOP INT DEFAULT 0;           DECLARE cur_oalid CURSOR FOR           SELECToal.id FROM oal_xxx oal WHERE oal.`ymd` <concat><p>      </p> <p><span style="color:#0070c0">    -- </span><span style="color:#0070c0">读取一行数据到变量</span><span style="color:#0070c0">  </span></p> <pre class="brush:php;toolbar:false">FETCH cur_oalid INTO p_oalid;

 

     — 这个就是判断是否游标已经到达了最后  

 WHILE STOP  1 DO            -- select p_id;           START TRANSACTION;

     —   进行数据迁移

   REPLACE INTO oal_xxx_history SELECT oal.*FROM oal_xxx oal WHERE oal.id=p_oalid ;               DELETE FROM oal_xxx WHERE id=p_oalid;                                           -- INSERT INTO t (tid) VALUES (p_tid);           COMMIT;

            

           

        — 读取下一行的数据   

 FETCH cur_oalid INTO p_oalid;        END WHILE;              CLOSE cur_oalid; -- 关闭游标     END$$     DELIMITER ;

 以上就是MySQL存储过程–>通过游标遍历和异常处理迁移数据到历史表 的内容,更多相关内容请关注PHP中文网(www.php.cn)! 

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享