MySQL创建定时任务方式

从MySQL5.1.6版本以后,MySQL增加了事件调度器(Event Scheduler)功能,可以做定时任务,如(定时删除表数据,数据备份等等)。

事件调度器有时也可以称为临时触发器(temporal triggers),因为事件调度器是基于特定时间周期触发来执行某些任务,而触发器(Triggers)是基于某个表所产生的事件触发的

1、在使用这个功能之前必须确保event_scheduler已开启

SET GLOBAL event_scheduler = 1;

---或者在配置文件my.cnf 中加上 event_scheduler = 1;

  或通过

SET GLOBAL event_scheduler = ON;

来开启,也可以直接在启动命令加上“--event_scheduler=1”,例如:

mysqld ... --event_scheduler=1

 注:将事件计划关闭:SET GLOBAL event_scheduler = 0;

2、要查看当前是否已开启事件调度器,可执行如下SQL:

SHOW VARIABLES LIKE 'event_scheduler';

     或

SELECT @@event_scheduler;

     或

SHOW PROCESSLIST;

  注:

        (1)关闭事件任务:ALTER EVENT eventName ON COMPLETION PRESERVE DISABLE;

        (2)开启事件任务:  ALTER EVENT eventName ON COMPLETION PRESERVE ENABLE;

        (3)查看事件任务:SHOW EVENTS ;

一、创建语法:

CREATE EVENT [IFNOT EXISTS] event_name

ONSCHEDULE schedule

[ONCOMPLETION [NOT] PRESERVE]

[ENABLE | DISABLE]

[COMMENT 'comment']

DO sql_statement;

    创建实例 -- 每隔5秒清空TEST表(根据个人需求)

CREATE TABLE TEST(表元素);
CREATE EVENT TEST_TRUNCATE
ON SCHEDULE EVERY 5 SECOND
DO TRUNCATE TEST;

二、修改语法

ALTER EVENT event_name
[ONSCHEDULE schedule]
[RENAME TOnew_event_name]
[ON COMPLETION [NOT] PRESERVE]
[COMMENT 'comment']
[ENABLE | DISABLE]
[DO sql_statement]

      修改实例

1) 临时关闭事件

1

ALTER EVENT TEST_TRUNCATE DISABLE;

2) 开启事件

1

ALTER EVENT TEST_TRUNCATE ENABLE;

3) 将每隔5秒清空TEST_TRUNCATE表改为5天清空一次:

1

2

ALTER EVENT TEST_TRUNCATE

ON SCHEDULE EVERY 5 DAY;

三、删除语法

DROP EVENT IF EXISTS TEST_TRUNCATE;

参考:MySQL创建定时任务 - 沧海一粟hr - 博客园 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值