mysql定时器,创建定时任务
2019-10-11 本文已影响0人
小柒的另一个世界
查看定时器功能开启状态
-- 查看定时器状态 OFF 表示关闭
show variables like 'event%';
-- 开启定时器,下面的二选都可以
-- 尽量不要使用 OFF 和 ON 有时候会出现以下错误
-- SET GLOBAL event_scheduler = OFF;
-- 1231 - Variable 'event_scheduler' can't be set to the value of 'OFF;'
SET GLOBAL event_scheduler = 1;
-- 关闭定时器
SET GLOBAL event_scheduler = 0;
查看指定定时器状态
-- 删除定时器
DROP EVENT [IF EXISTS] event_name
-- 关闭事件任务: eventName 定时器名称
ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;
-- 开启事件任务:
ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;
-- 查看事件任务:
SHOW EVENTS ;
创建测试表
CREATE TABLE `test` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
`type` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
定时器创建(定时器可以直接执行语句也可以执行存储过程的调用)
-- 如果存在相同名称的定时器删除掉旧的
drop event if exists timer_smile;
-- 创建一个定时器 timer_smile
-- 这里可以添加上判断是否存在
-- 不存在的情况下就创建
-- CREATE EVENT IF NOT EXISTS timer_smile
CREATE EVENT timer_smile
-- 执行的条件 1秒钟执行一次
ON SCHEDULE EVERY 1 SECOND
-- 执行的条件 1分钟执行一次
-- ON SCHEDULE EVERY 1 MINUTE
-- 执行条件每天执行一次
-- ON SCHEDULE EVERY 1 DAY
-- 这里还可以设置从什么时间开始
-- 5 天后开始执行
-- STARTS CURRENT_TIMESTAMP+INTERVAL 5 DAY
-- 这里也可以设置几小时 或者几分钟后开始执行
-- STARTS CURRENT_TIMESTAMP+INTERVAL 5 MINUTE
-- 某个时间执行
-- ON SCHEDULE AT TIMESTAMP '2018-09-17 18:16:00'
-- 五天后执行
-- ON SCHEDULE AT CURRENT_TIMESTAMP+INTERVAL 5 DAY
-- 可以设置到什么时间结束
-- 五天后停止执行
-- ENDS CURRENT_TIMESTAMP+INTERVAL 5 DAY
-- 这个还可以设置为几小时或者几分钟后停止执行
-- ENDS CURRENT_TIMESTAMP+INTERVAL 5 MINUTE
-- 可以设置是否立即生效
-- 设置定时任务创建后不立即开启
-- DISABLE 表示的是关闭 , 默认是开启的
ON COMPLETION NOT PRESERVE DISABLE
-- 在条件内执行的操作
-- 如果是存储过程的话调用方式为
-- DO call 存储过程名称();
-- 下面是直接执行语句
DO INSERT `test`(`name`,`type`)VALUES(CURRENT_TIMESTAMP,'1');