阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

MySQL event的简单使用

117次阅读
没有评论

共计 1844 个字符,预计需要花费 5 分钟才能阅读完成。

—— 查看 event 的 create 信息

SHOW CREATE event event_test;

——查看某个 schema 下的 event 状态

SELECT event_schema,event_name,STATUS FROM information_schema.events WHERE event_schema = ‘xxxx’

 

——查看 event 功能是否开启

MySQL> show variables like ‘%event%’;

+—————–+——-+

| Variable_name  | Value |

+—————–+——-+

| event_scheduler | OFF  |

+—————–+——-+

1 row in set (0.00 sec)

 

开启 event 功能,可设置为 ON|1

mysql> set global event_scheduler=on;

Query OK, 0 rows affected (0.00 sec)

 

mysql> show variables like ‘%event%’;

+—————–+——-+

| Variable_name  | Value |

+—————–+——-+

| event_scheduler | ON    |

+—————–+——-+

1 row in set (0.00 sec)

 

— 创建测试表

CREATE TABLE t(X DATETIME);

 — 创建一个测试的 proc, 为了向测试表中插入系统时间

DELIMITER $$

DROP PROCEDURE IF EXISTS e_test $$

CREATE PROCEDURE e_test()

BEGIN

INSERT INTO t VALUES(NOW());

END $$

DELIMITER ;

 

— 创建事件

– 每隔十秒自动调用 e_test() 存储过程

CREATE EVENT IF NOT EXISTS event_test

ON SCHEDULE EVERY 10 SECOND

ON COMPLETION PRESERVE

DO CALL e_test();

 

过会儿 select 测试表中的数据,如下:
 

MySQL event 的简单使用

— 开启事件

ALTER EVENT event_test ON

COMPLETION PRESERVE ENABLE;

 

— 关闭事件

ALTER EVENT event_test ON

COMPLETION PRESERVE DISABLE;

 

 

一些例子:

从现在开始每隔九天定时执行

CREATE EVENT EVENT1

ON SCHEDULE EVERY 9 DAY STARTS NOW()

ON COMPLETION PRESERVE ENABLE

DO

BEGIN

CALL TOTAL();

END

 

每个月的一号凌晨 1 点执行

CREATE EVENT EVENT2 ON SCHEDULE EVERY 1 MONTH STARTS

DATE_ADD(DATE_ADD(DATE_SUB(CURDATE(),INTERVAL DAY(CURDATE())-1 DAY), INTERVAL 1 MONTH),INTERVAL 1 HOUR)

ON COMPLETION PRESERVE ENABLE

DO

BEGIN

CALL STAT();

END

 

每个季度一号的凌晨 2 点执行

CREATE EVENT TOTAL_SEASON_EVENT

ON SCHEDULE EVERY 1 QUARTER STARTS DATE_ADD(DATE_ADD(DATE( CONCAT(YEAR(CURDATE()),’-‘,ELT(QUARTER(CURDATE()),1,4,7,10),’-‘,1)),INTERVAL 1 QUARTER),INTERVAL 2 HOUR)

ON COMPLETION PRESERVE ENABLE

DO

BEGIN

CALL SEASON_STAT();

END

 

每年 1 月 1 号凌晨四点执行

CREATE EVENT TOTAL_YEAR_EVENT

ON SCHEDULE EVERY 1 YEAR STARTS DATE_ADD(DATE(CONCAT(YEAR(CURDATE()) + 1,’-‘,1,’-‘,1)),INTERVAL 4 HOUR)

ON COMPLETION PRESERVE ENABLE

DO

BEGIN

CALL YEAR_STAT();

END

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-05/131114.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1844字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中