3天后Mysql自动删除事件

时间:2018-05-04 00:26:18

标签: mysql

我的MYSQL数据库中有一个名为sale的表,如下所示:

sale table schema

我想自动删除3天未验证的销售, 我创建了一个活动,但遗憾的是它并不是我的代码:

CREATE EVENT `delete_sale` ON SCHEDULE EVERY 1 HOUR  DO DELETE FROM sale WHERE sale.is_validated = 0 and sale.date < DATE_SUB(NOW(), INTERVAL 3 DAY)

2 个答案:

答案 0 :(得分:0)

我最好的猜测是你的活动正在运作,但它只会触发一次然后停用。要解决这个问题,你应该添加&#34; ON XOMPLETION PRESERVE&#34;线。另一种可能性是它没有正确加载,因为它无法完全解析您的事件代码。要真正掌握MySQL,请尝试将其视为多语句事件,更改分隔符并添加BEGIN和END。像这样:

DELIMITER &&
CREATE EVENT `delete_sale` 
ON SCHEDULE EVERY 1 HOUR  
ON COMPLETION PRESERVE
DO
BEGIN
DELETE FROM sale WHERE sale.is_validated = 0 and sale.date < DATE_SUB(NOW(), INTERVAL 3 DAY);
END &&
DELIMITER ;

答案 1 :(得分:0)

通过使用以下查询启用event_scheduler来解决问题:SET GLOBAL event_scheduler = ON;