简介
mysql5.1 版本开始引进 event 概念。event 既 “时间触发器”,与 TRIGGERS 的事件触发不同,event 类似与 linux crontab 计划任务,用于时间触发。通过单独或调用存储过程使用,在某一特定的时间点,触发相关的 SQL 语句或存储过程。
对于每隔一段时间就有固定需求的操作,如创建表,删除数据,更新数据等操作,可以使用 event 来处理。
基本设置
开启定时器:要使 event 起作用,MySQL 的常量 GLOBAL event_scheduler 必须为 ON 或者是 1。
1 | # 查看是否开启定时器 |
使用
实现:到达时间自动更新表sp_buy_order_item状态值从3到7
定义存储过程(方法)
1 | DELIMITER | |
存储过程多SQL
1 | DELIMITER | |
创建定时器
1 | # 每间隔5分钟调用一次存储过程 |
启动定时器
1 | ALTER EVENT event_update_order_item_status ON |
查看
查看定时器
1 | SELECT * FROM information_schema.EVENTS; |
查看存储过程
1 | # 查看存储过程状态 |
删除
关闭事件任务
1 | # 关闭事件任务 |
删除定时器
1 | DROP EVENT IF EXISTS event_update_order_item_status; |
删除存储过程
1 | DROP PROCEDURE IF EXISTS update_order_item_status; |