mysql简单的定时任务

一、创建函数/存储过程:
CREATE DEFINER=admin@172.16.%.% PROCEDURE pro_statis_wcoin_income()
BEGIN
-- 统计前,先删除
DELETE FROM user_wcoin_income_statis WHERE business_day = FROM_UNIXTIME(UNIX_TIMESTAMP(date_add(CURDATE(), interval -1 day)), '%Y-%m-%d');

-- 开始统计
INSERT INTO user_wcoin_income_statis (
uid,
business_day,
sum_wcoin,
ctime,
utime
) SELECT
a.uid,
FROM_UNIXTIME(a.ctime / 1000, '%Y-%m-%d') business_day,
sum(a.amount),
UNIX_TIMESTAMP() * 1000,
UNIX_TIMESTAMP() * 1000
FROM
user_wcoin_record a
WHERE
a.flow_type = 1
AND a.ctime >= UNIX_TIMESTAMP(date_add(CURDATE(), interval -1 day)) * 1000
AND a.ctime < UNIX_TIMESTAMP(CURDATE()) * 1000
GROUP BY
a.uid,
FROM_UNIXTIME(a.ctime / 1000, '%Y-%m-%d');

COMMIT;

END

二、创建事件:
CREATE DEFINER=admin@172.16.%.% EVENT Event_statis_wcoin_income ON SCHEDULE EVERY 1 DAY STARTS '2018-12-28 02:00:00' ON COMPLETION PRESERVE ENABLE COMMENT '定时每天统计用户的wcoin' DO call pro_statis_wcoin_income()

总结: 每天凌晨2点跑一次存储过程。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • MySql取得日期(前一天、某一天) 取得当天: SELECT curdate(); mysql> SELECT ...
    laravel阅读 1,709评论 0 4
  • 一、MySQL 获得当前日期时间 函数 1.1 获得当前日期 + 时间(date + time) 函数:now()...
    梦遇缱绻的馥郁阅读 885评论 0 1
  • rljs by sennchi Timeline of History Part One The Cognitiv...
    sennchi阅读 7,451评论 0 10
  • -- MySQL日期时间处理函数 -- 当前日期:2017-05-12(突然发现今天512,是不是会拉防空警报) ...
    sph_ui阅读 3,418评论 2 3
  • 小王种的葫芦这几天疯长。 每天早晨出去,一下楼梯就能看到那棵骄傲的葫芦。依着几根竹竿,她碧绿肥硕的叶子,一层叠着一...
    山野的风2018阅读 551评论 0 3