创建事件以删除会话时,SQL语法错误

安德鲁

我对以下问题的答案中提供的SQL代码进行了少许修改:如何在一定时间后删除MySQL记录但是,每次运行查询,都会出现“您的SQL语法有错误”错误。

create event delete_session
on schedule at current_timestamp + interval 1 day
on completion preserve
do begin
  delete from session where date < DATE_SUB(NOW(), INTERVAL 7 DAYS);
end;

该代码应创建一个事件,以在7天后从会话表中删除条目,但是却给了我这个错误。这里的语法实际上有问题吗?

塞巴斯蒂安·布罗施(Sebastian Brosch)

您的CREATE EVENT命令和DELETE命令正在使用;as分隔符。因此,您的CREATE EVENT命令在DELETE命令之后(之前END结束您需要DELIMITER在开始时设置,以在CREATE EVENT命令上使用另一个

-- set the DELIMITER to "|"
DELIMITER |

CREATE EVENT delete_session
    ON schedule AT current_timestamp + INTERVAL 1 DAY
    ON COMPLETION PRESERVE
DO BEGIN
    DELETE FROM session WHERE `date` < DATE_SUB(NOW(), INTERVAL 7 DAY);
END |

-- set the DELIMITER back to the default.
DELIMITER ;

...,您需要再更改一件事:

  • 删除尾随SDAYS

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章