mysql里创建定时任务(event)

107 阅读1分钟

本文已参与[新人创作礼]活动,一起开启掘金创作之路

创建一个每秒都修改qiye表数据的定时任务, EVERY 1 SECOND STARTS '2020-05-15 11:38:00'   表示的是从2020-02-15 11:38:00开始以每秒钟都执行该时间。SECOND可以换成day,minutes,month,year等,BEGIN下面的就是具体要执行的代码(一般都会调用一个存储过程  CALL 存储过程名)

DELIMITER || DROP EVENT IF EXISTS test_event` ||

CREATE EVENT test_event ON SCHEDULE
EVERY 1 SECOND STARTS '2020-05-15 11:38:00'
DO
BEGIN

        update changsha.qiye set mingcheng='yanghuan',riqi=FROM_UNIXTIME(UNIX_TIMESTAMP(),'%Y-%m-%d %H:%i:%s') where id=2;
     

END ||
DELIMITER ; `

问题:

1.可能很多人成功执行了上面的语句,但是发现每秒钟并没有执行BEGIN后的sql语句。这是因为mysql默认是不开启该功能的,需要修改mysql的配置文件,在mysqld下加入event_scheduler=1,重启mysql,进入到mysql中执行SHOW VARIABLES LIKE 'event_scheduler';发现是ON才算开启

image.png