Mysql事件


mysql事件是一个可以定时(确定时间或者周期性)的执行指定程序代码的功能。

开启

Mysql必须是5.1以上版本,然后检测事件功能是否开启:ON/OFF

SHOW VARIABLES LIKE 'event_scheduler';

如果是OFF,说明该功能没有开启,开启方式:

SET GLOBAL event_scheduler = ON;

注意:上面的sql语句方式只是临时开启,mysql重启后状态又会变为OFF,若想永久开启,必须在my.cnf文件(win中my.ini)中增加 event_scheduler=ON ,然后重启mysql。

关闭

SET GLOBAL event_scheduler = OFF;

语法

CREATE

    EVENT

    event_name		# event_name:自定义事件名称

    ON SCHEDULE schedule		# schedule:定义事件执行时间

    [ON COMPLETION [NOT] PRESERVE]		# (可选)事件执行完后是否保存,默认保存 ON COMPLETION PRESERVE,执行完删除 ON COMPLETION NOT PRESERVE

    [ENABLE | DISABLE | DISABLE ON SLAVE]		#(可选)启用 | 禁用 | 如果是从服务器自动同步主上的创建事件的语句的话,会自动加上DISABLE ON SLAVE。

    [COMMENT comment]		#(可选) comment: 事件注释(注释用引号引起来)

    DO event_body;		# event_body:事件执行主体

实例

在 2019-06-11 09:31:00 清空user表

DELIMITER $$

CREATE	EVENT `eventname`

ON SCHEDULE AT '2019-06-11 09:31:00'

ON COMPLETION PRESERVE

ENABLE

COMMENT 'This is a try event!'

DO
	BEGIN
	    TRUNCATE TABLE `ttt`;
	END$$

DELIMITER ;

事件执行时间举例:

ON SCHEDULE AT CURRENT_TIMESTAMP	# 当前时间立刻执行

ON SCHEDULE EVERY 1 SECOND		#一秒执行一次(MINUTE/HOUR)

ON SCHEDULE EVERY 1 DAY		# 每天定时执行

ON SCHEDULE AT CURRENT_TIMESTAMP + INTERVAL 5 DAY	# 5天以后执行一次

ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY	# 5天后开启每天定时执行

ON SCHEDULE EVERY 1 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 5 DAY		# 5天后停止每天定时执行

ON SCHEDULE EVERY 1 DAY STARTS CURRENT_TIMESTAMP + INTERVAL 5 DAY ENDS CURRENT_TIMESTAMP + INTERVAL 1 MONTH		#5天后开启每天定时执行,一个月后停止

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值