使用如下命令检测是否开启事件调度计划:
show variables like '%event_scheduler%';
如果现实为OFF,则可暂时用命令set global event_scheduler =1;开启。不过该改法在数据库重启后将会恢复为原来状态,要想数据库重启后也可以让 event_scheduler 开启,则需要在配置文件中设置 然后重启 MySQL 服务即可:
[mysqld]
event_scheduler=ON;
如下图所示:
这里分了两块:AT表示在某个时间点执行一次,EVERY表示在某天的某一刻执行一次。
SQL如下:
CREATE EVENT `NewEvent`
ON SCHEDULE EVERY 1 DAY STARTS '2019-10-01 00:00:00'
ON COMPLETION NOT PRESERVE
ENABLE
DO
update t_member set used_view_num=0,used_cache_num=0;
至于DO后面的就是你想要执行的内容,你可以写个存储过程在这里进行调用。上面是在每天零时执行一次,如果想要在每天1点执行一次则如下:
其中HOUR处还有其他单位,如YEAR,MONTH,DAY,WEEK,SECOND,MINUTE等等。