mysql定时执行某任务


查看event是否开启: show variables like '%sche%';
将事件计划开启: set global event_scheduler=1;
关闭事件任务: alter event e_test ON COMPLETION PRESERVE DISABLE;
开户事件任务: alter event e_test ON COMPLETION PRESERVE ENABLE;

简单实例.
创建表 CREATE TABLE test(endtime DATETIME);

创建存储过程test
CREATE PROCEDURE test ()
BEGIN
update examinfo SET endtime = now() WHERE id = 14;
END;

创建event e_test
CREATE EVENT if not exists e_test
on schedule every 30 second
on completion preserve
do call test();

每隔30秒将执行存储过程test,将当前时间更新到examinfo表中id=14的记录的endtime字段中去.


使用navicat UI界面操作更方便,存储过程(函数)和计划任务(事件)


 mysql中查看Event作业情况

通过执行如下的语句:

SELECT * FROM information_schema.EVENTS

实用性语句

SELECT LAST_EXECUTED FROM information_schema.EVENTS WHERE EVENT_NAME='reset_score';

自动开启

在my.ini的[mysqld]下

event_scheduler=ON

原文地址:https://www.cnblogs.com/tianjian/p/3630332.html