2016-05-20 4 views
0

У меня возникла проблема с событием MySQL. Я хочу, чтобы это мероприятие проводилось каждый первый день года. В настоящее время мое мероприятие будет проходить каждый месяц. Вот мой сценарий событий.Создайте событие MySQL и запустите первый день года

DELIMITER $$ 
CREATE EVENT create_ledger 
ON SCHEDULE EVERY '1' MONTH 
STARTS '2016-05-20 11:33:01' 
DO 
    BEGIN 
    insert into ledger SET ledger_year= YEAR(CURDATE()); 
    END$$ 
DELIMITER ; 

надеюсь, что кто-то может помочь. TQVM

+1

Это почти кажется слишком очевидным - хотя действительно эта проблема часто свидетельствует о плохом образе дп. – Strawberry

ответ

3

Предполагая, что вы имеете права MySQL для создания событий, основной синтаксис:

CREATE EVENT `event_name` 
ON SCHEDULE schedule 
[ON COMPLETION [NOT] PRESERVE] 
[ENABLE | DISABLE | DISABLE ON SLAVE] 
DO BEGIN 
    -- event body 
END; 

В вашем случае просто использовать:

CREATE EVENT create_ledger 
    ON SCHEDULE EVERY 1 YEAR 
    ... 

Вы можете установить STARTS & ЗАКАНЧИВАЕТСЯ:

STARTS '2016-01-01 00:00:00' 
ENDS '2031-01-01 00:00:00' 
Смежные вопросы