mysql定时任务使用。
说明:项目有个数据迁移的需求,由于项目已经临近收尾阶段,不想新增项目代码 所以直接在数据库进行迁移操作。
1.首先查看数据库是否开启定时任务。
show variables like '%event_scheduler%';
set GLOBAL event_scheduler = ON;/*若为OFF则执行该代码.*/
show variables like '%event_scheduler%';
2.如果你的脚本一句sql就能解决就直接写在创建事件的sql中,如果是多行脚本,则新增一个函数。
CREATE PROCEDURE MigratingAppInformation()
BEGIN
insert into cs_app_hist_logininformation(SESSION_ID,COMPANY_CODE,.....) select SESSION_ID,COMPANY_CODE,..... from cs_app_logininformation where LOGIN_TIME < (SELECT DATE_ADD(NOW(), INTERVAL - 2 MONTH));
DELETE from cs_app_logininformation where LOGIN_TIME <(SELECT DATE_ADD(NOW(), INTERVAL - 2 MONTH));
END;
结果成功如下
3.创建事件
CREATE EVENT test ON SCHEDULE EVERY 1 MINUTE STARTS '2020-08-25 16:40:00' DO call MigratingAppInformation;
SCHEDULE EVERY 1 MINUTE STARTS ‘2020-08-25 16:40:00’ 这段sql 是设置执行频率和开始时间