1、要想保证能够执行event事件,就必须保证定时器是开启状态,默认为关闭状态
set GLOBAL event_scheduler = 1;
或
set GLOBAL event_scheduler = ON;
要查看当前是否已开启事件调度器,可执行如下SQL:
SHOW VARIABLES LIKE 'event_scheduler'
下面是创建时间调度器的代码
================================
set time_zone = '+8:00';
set GLOBAL event_scheduler = 1;-- 设置该事件使用或所属的数据库base数据库
use cust_stat;
# 如果原来存在该名字的任务计划则先删除
drop event if exists clean_temp_table;
# 设置分隔符为 '$$' ,mysql默认的语句分隔符为 ';' ,这样在后续的 create 到 end 这段代码都会看成是一条语句来执行
DELIMITER $$
# 创建计划任务,设置第一次执行时间为'2014-07-30 10:00:00',并且每天执行一次
create event clean_temp_table
on schedule every 1 day starts timestamp '2018-04-29 01:00:00'
#on schedule every 1 SECOND
do
# 开始该计划任务要做的事
begin
# 删除批量查询结果
truncate table cust_stat.result_keyword;
# 删除分段查询summary
truncate table cust_stat.level_result_detail;
# 删除分段查询detail
truncate table cust_stat.level_result;
-- 结束计划任务
end $$
# 将语句分割符设置回 ';'
DELIMITER ;