事件EVENT

MySQL中的事件EVENT 是根据计划执行的一堆SQL代码,一个具体的例子就是

MySQL数据库定时删除一些过期的数据...

创建一个事件

DELIMITER $$

CREATE EVENT yearly_delete_stale_audit_rows
ON SCHEDULE
    -- AT '2021-09-21'
    EVERY 1 YEAR STARTS '2019-01-01' ENDS '2029-01-01'
DO BEGIN
    DELETE FROM payments_audit
    WHERE action_date < NOW() - INTERVAL 1 YEAR;
END $$

DELIMITER ;

这段SQL的意思是:

创建一个事件   yearly_delete_stale_audit_rows

 ON SCHEDULE  在事件调度器上,

EVERY 1 YEAR STARTS '2019-01-01' ENDS '2029-01-01' 从2019-01-01 到 2o29-01-01 每年执行一次
AT '2021-09-21'的意思是 在2021-09-21执行一次
DO BEGIN 开始
END $$ 结束
做了什么?
DELETE FROM payments_audit
WHERE action_date < NOW() - INTERVAL 1 YEAR;


查看事件
SHWO EVENTS
SHOW EVENTS LIKE 'yearly%'

更新事件

ALTER EVENT ...
-- ALTER 与 CREATE 的语法完全一致

启用/禁用 事件

-- 启用    
ALTER EVENT yearly_delete_stale_audit_rows ENABLE
-- 禁用
ALTER EVENT yearly_delete_stale_audit_rows DISABLE

删除事件

DROP EVENT IF EXISTS yearly_delete_stale_audit_rows;

courses in bilibili

 
上一篇:mysql 触发器


下一篇:Node Express