码迷,mamicode.com
首页 > 数据库 > 详细

mysql存储过程和事件

时间:2014-09-19 11:48:55      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   for   2014   div   

1.会员表member和车辆表car,更新每个会员下面的车辆数量have_car字段。

DELIMITER $$

USE $$

DROP PROCEDURE IF EXISTS `sp_update_member_have_car`$$

CREATEPROCEDURE `sp_update_member_have_car`()
BEGIN
    DECLARE tmp INT DEFAULT 0;  
    DECLARE done INT DEFAULT -1;  
    
    /* 声明游标 */  
    DECLARE myCursor CURSOR FOR SELECT reg_no FROM member WHERE have_car IS NULL;  
      
    /* 当游标到达尾部时,mysql自动设置done=1 */     
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;  
      
    /* 打开游标 */  
    OPEN myCursor;  
      
    /* 循环开始 */  
    myLoop: LOOP  
        /* 移动游标并赋值 */  
        FETCH myCursor INTO tmp;  
        IF done = 1 THEN   
            LEAVE myLoop;  
        END IF;  
           /* do something */  
        UPDATE member SET have_car = (SELECT COUNT(*) FROM car WHERE mem_no= tmp ) WHERE reg_no = tmp; 
    /* 循环结束 */  
    END LOOP myLoop;  
      
    /* 关闭游标 */  
    CLOSE myCursor;
    END$$

DELIMITER ;

建立执行计划,每天凌晨1点执行存储过程。

DELIMITER $$

ALTER EVENT `E_Update_HaveCar_Field_Event_1` ON SCHEDULE EVERY 1 DAY STARTS 2014-09-19 01:00:00 ON COMPLETION PRESERVE ENABLE DO BEGIN
        CALL `sp_update_member_have_car`();  
    END$$

DELIMITER ;

 



mysql存储过程和事件

标签:style   blog   color   io   os   ar   for   2014   div   

原文地址:http://www.cnblogs.com/simpledev/p/3980992.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!