mysql保持开启事件调度器_mysql事件调度器使用

--设置事件调度器 开启

SET GLOBAL event_scheduler = ON;

--查看事件调度器 是否开启 on开  off关

SHOW VARIABLES LIKE 'event_scheduler';

创建表:

DROP TABLE IF EXISTS `szl`;

CREATE TABLE `szl` (

`id` int(20) NOT NULL AUTO_INCREMENT,

`uname` varchar(20) DEFAULT NULL,

`lastupdate` datetime DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

事件调度器 每10秒 向szl表插入数据:

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 10 SECOND

DO

INSERT INTO szl(uname, lastupdate) VALUES('Jimmy Shan', NOW());

说明:

szl_evt_insert 事件名称

EVERY 10 SECOND 每隔10秒执行

DO  需要做的事

-------------------------------------------------------------------------------

mysql在每天指定时间执行的事物建立方法:

DROP EVENT if EXISTS  事物名称;

CREATE EVENT事物名称

ON SCHEDULE EVERY 1 DAY

STARTS '2014-06-25 18:50:00'

DO  CALL  c managerloginsert;

关键是STARTS '2014-06-25 18:50:00' 句  指定开始日期及时间 那么第二次执行是就会18:50:00开始

想想为啥?因为这里ON SCHEDULE EVERY 1 DAY 指定一天 第一次开始执行的时间是18:50:00 下次再执行

必须到一天 24小时 。

-------------------------------------------------------------------------------

5天后清空表记录:

CREATE EVENT szl_evt_insert

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO

TRUNCATE TABLE szl;

-------------------------------------------------------------------------------

指定在2014-06-25 17:00:00清空表记录:

CREATE EVENT szl_evt_insert

ON SCHEDULE AT TIMESTAMP '2014-06-25 17:00:00'

DO

TRUNCATE TABLE szl;

-------------------------------------------------------------------------------

每天定时清空表:

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 1 DAY

DO

TRUNCATE TABLE szl;

-------------------------------------------------------------------------------

5天后开启每天定时清空表:

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 1 DAY

STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO

TRUNCATE TABLE szl;

-------------------------------------------------------------------------------

每天定时清空表,5天后停止执行:

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 1 DAY

ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY

DO

TRUNCATE TABLE szl;

-------------------------------------------------------------------------------

5天后开启每天定时清空表,一个月后停止执行:

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 1 DAY

STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY

ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH

DO

TRUNCATE TABLE szl;

[ON COMPLETION [NOT] PRESERVE]可以设置这个事件是执行一次还是持久执行,默认为NOT PRESERVE。

-------------------------------------------------------------------------------

每天定时清空表(只执行一次,任务完成后就终止该事件):

CREATE EVENT szl_evt_insert

ON SCHEDULE EVERY 1 DAY

ON COMPLETION NOT PRESERVE

DO

TRUNCATE TABLE szl;

[ENABLE | DISABLE]可是设置该事件创建后状态是否开启或关闭,默认为ENABLE。

[COMMENT ‘comment']可以给该事件加上注释。

-------------------------------------------------------------------------------

修改事件(ALTER EVENT)

ALTER EVENT event_name

[ON SCHEDULE schedule]

[RENAME TO new_event_name]

[ON COMPLETION [NOT] PRESERVE]

[COMMENT 'comment']

[ENABLE | DISABLE]

[DO sql_statement]

1) 临时关闭事件

ALTER EVENT e_test DISABLE;

2) 开启事件

ALTER EVENT e_test ENABLE;

3) 将每天清空test表改为5天清空一次:

ALTER EVENT e_test

ON SCHEDULE EVERY 5 DAY;

删除事件(DROP EVENT)

语法很简单,如下所示:

DROP EVENT [IF EXISTS] event_name

例如删除前面创建的e_test事件

DROP EVENT e_test;

当然前提是这个事件存在,否则会产生ERROR 1513 (HY000): Unknown event错误,因此最好加上IF EXISTS

DROP EVENT IF EXISTS e_test;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值