我的MYSQL数据库中有一个名为sale的表,如下所示:
我想自动删除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)
答案 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;