【问题标题】:Mysql Events Execution Start timeMysql 事件执行开始时间
【发布时间】:2012-10-02 06:02:51
【问题描述】:

我有一个 mysql 事件,它将每 1 天执行一次并进行一些活动。请找到相同的代码 sn-ps。

delimiter |    
CREATE EVENT createTest     
ON SCHEDULE EVERY 1 DAY 
DO
BEGIN
  -- Do some work
END |
delimiter ;

当我创建此事件时,它在同一天的同一时间执行。第二天执行(最后执行 + 24 小时)方案。

是否可以在活动中设置开始时间?我想在每天 0 小时执行这个事件?

【问题讨论】:

  • 我在 windows server 2008 r2 上使用 Mysql 5.5。

标签: mysql events


【解决方案1】:

是的,你可以做到。为此目的使用 STARTS 选项。

CREATE EVENT event1
ON SCHEDULE EVERY '1' DAY
STARTS '2012-10-03 00:00:00'
DO 
BEGIN
 -- do something
END

注意,事件开始日期时间必须是将来的。


对于@spt -

CREATE EVENT event1
    ON SCHEDULE EVERY '1' YEAR
    STARTS '2016-04-01 00:00:00'
    DO 
BEGIN
END

另外,如果难以创建和设置事件对象,您可以使用dbForge Studio for MySQL 中的 GUI 事件对象编辑器(免费 Express 版本允许)。

【讨论】:

  • 请注意,至少对于 MySQL 5.6(不能说早期版本),过去的开始时间可以正常工作!
  • 如何在每年的 4 月 1 日 00:00:00 安排一个活动
  • CREATE EVENT s ON SCHEDULE AT CAST(DATE_FORMAT(NOW() ,'%Y-04-01 00:00:00') as DATE) DO BEGIN UPDATE medical.medtest SET BALANCE = 1;更新医疗.medtest SET HOS_1 = 1; END 我试过了
【解决方案2】:

你可以用这个:

CREATE EVENT createTest     
ON SCHEDULE EVERY '1' DAY
STARTS CONCAT(DATE(NOW()+INTERVAL 1 DAY ), ' 00:00:00')
DO 
BEGIN
 -- do your task
END

【讨论】:

    猜你喜欢
    • 2012-09-21
    • 2017-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2018-06-28
    相关资源
    最近更新 更多