如何在每个周末运行mysql事件。从每个星期五开始到每个星期天晚上结束

如何在每个周末运行mysql事件。从每个星期五开始到每个星期天晚上结束,mysql,cron,mysql-event,Mysql,Cron,Mysql Event,是否可以创建每个周末开始的mysql事件。 每周五晚上7点开始,每隔1小时执行,每周一上午5点结束。(查询更新cron进程每分钟读取一次的表) mysql事件“结束”似乎只是绝对时间。此外,似乎不可能创建将禁用或删除另一个事件的事件 所以,看起来像是mysql事件限制,我可能不得不将mysql事件和cron进程结合起来来处理“结束” 任何帮助都将不胜感激。我想有两种方法: 将事件设置为每小时运行一次。在你的活动主体中放置一个丑陋的IF SELECT @dow := dayofweek(N

是否可以创建每个周末开始的mysql事件。 每周五晚上7点开始,每隔1小时执行,每周一上午5点结束。(查询更新cron进程每分钟读取一次的表)

mysql事件“结束”似乎只是绝对时间。此外,似乎不可能创建将禁用或删除另一个事件的事件

所以,看起来像是mysql事件限制,我可能不得不将mysql事件和cron进程结合起来来处理“结束”


任何帮助都将不胜感激。

我想有两种方法:

  • 将事件设置为每小时运行一次。在你的活动主体中放置一个丑陋的IF

    SELECT  @dow    := dayofweek(NOW())
    ,       @oclock := hour(NOW());`
    
    IF (@dow = 6 AND @oclock >= 19) 
    OR (@dow = 7) 
    OR (@dow = 1 AND @oclock <= 5) THEN 
        -- run your code here 
    END IF;
    
    SELECT@dow:=dayofweek(NOW())
    ,@oclock:=hour(NOW())`
    如果(@dow=6和@oclock>=19)
    或(@dow=7)
    
    或(@dow=1和@oclock谢谢,我喜欢第1个解决方案。它很难看,但它确实可以灵活地完成我想要的工作。我可以让用户将所有日期和重复内容放入表中,这样查看存档事件就更方便了。否则,我必须通过事件中的“do”例程进行解析。是“在行的末尾吗?”2应该是吗?