您的位置:首页 > 数据库 > MySQL

mysql 在数据时间到期时候进行自动增加一年操作 3ff8

2017-10-16 17:16 429 查看
#存储器
-- ----------------------------
-- Procedure structure for update_endtime
-- ----------------------------
DROP PROCEDURE IF EXISTS `update_endtime`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `update_endtime`()
BEGIN
#声明需要的变量
DECLARE yonghuId int(11);
DECLARE done int default 0;
#储存游标
DECLARE cur CURSOR FOR SELECT id FROM dede_shouquanyonghu WHERE  shijianjieshu<=NOW();
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
#开始游标
OPEN cur;
FETCH next FROM cur INTO yonghuId;
REPEAT
IF NOT done THEN
INSERT INTO deal_log (yonghu_id,log_name,`addtime`) VALUES(yonghuId,'延续授权时间',NOW());
UPDATE dede_shouquanyonghu SET shijianjieshu=date_add(shijianjieshu, interval 1 YEAR) WHERE id=yonghuId;
END IF;
FETCH next FROM cur INTO yonghuId;
UNTIL done end repeat;
CLOSE cur;
END
;;
DELIMITER ;

#事件自动调用,每天执行一次
-- ----------------------------
-- Event structure for update_endtime_event
-- ----------------------------
DROP EVENT IF EXISTS `update_endtime_event`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` EVENT `update_endtime_event` ON SCHEDULE EVERY 1 DAY STARTS '2017-10-16 00:00:00' ON COMPLETION PRESERVE ENABLE DO CALL update_endtime()
;;
DELIMITER ;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql procedue event
相关文章推荐