2012-10-02 89 views
2

我有一個mysql事件,它將每隔1天執行一次並執行一些活動。請查找相同的代碼片段。Mysql事件執行開始時間

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

當我創建此事件時,它會在同一天執行相同的時間。第二天它會執行(上次執行+ 24小時)方案。

是否可以在事件中設置開始時間?我想每天在0小時內執行這些事件?

+0

我的Windows Server 2008 R2上使用MySQL 5.5。 – adkalavadia

回答

2

是的,你可以做到。爲此,請使用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事件對象編輯器。

+0

謝謝Devart .... !!! – adkalavadia

+0

請注意,至少在MySQL 5.6中(不能用早期版本說),過去的開始時間工作得很好! – Benjamin

+0

如何在每年4月1日00:00:00 – spt

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