Podívejte se na následující.
Vydejte select CURRENT_TIMESTAMP;
nebo
select count(*) as theCount
from customer_group
where is_status=1 and CURRENT_TIMESTAMP >= end_date;
Jinými slovy, proveďte nějaký průzkum. Události jsou úspěšné nebo neúspěšné, protože nemají žádné uživatelské rozhraní.
Spusťte některé příkazy jako:
show variables where variable_name='event_scheduler';
-- aktuálně VYPNUTO (nebo může být zapnuto)
Během vytváření zadejte čas zahájení události a zadejte ON COMPLETION PRESERVE
jako například
drop event if exists `Every_5_Minutes_QuestionUpdateImport`;
DELIMITER $$
CREATE EVENT `Every_5_Minutes_QuestionUpdateImport`
ON SCHEDULE EVERY 5 MINUTE STARTS '2015-09-01 00:00:00'
ON COMPLETION PRESERVE
DO BEGIN
--
-- all your statements go here
--
END$$
DELIMITER ;
Zapněte obslužnou rutinu události:
SET GLOBAL event_scheduler = ON; -- turn her on and confirm below
Potvrďte to:
show variables where variable_name='event_scheduler';
Zkontrolujte stav všech událostí v konkrétní databázi podle názvu databáze:
show events from stackoverflow; -- note stackoverflow is my database name
Zakázat nebo povolit určitou událost podle názvu v aktuálně vybrané db:
ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;
A v neposlední řadě, když píšu novou událost, vždy nejprve přidám do příkazů události protokolování do tabulky protokolu (s příkazem insert a datetime now()
). Tímto způsobem vím, že se to spustilo a že data v klauzuli where, jako je ta vaše, mi možná neposkytují špatné informace o celé věci.
A chci říct, že šílím všude kolem. Zpočátku, pak to vypustím později:
set filename:=concat('c:\\datavault\\stackoverflow\\app01\\batches\\processMe_',LPAD(@idToPerform, 8, '0'),'.txt');
set logMsg:=concat("It would appear I am to process this thing: ",filename);
insert EvtsLog(incarnationId,evtName,step,debugMsg,dtWhenLogged)
select incarnationId,evtAlias,10,logMsg,now(); -- 10: some step somewhere in the middle
Mějte na paměti pro všechny praktické účely (možná s výjimkou vašeho stolu, na kterém vám z vaší otázky opravdu záleží) ... že EvtsLog
moje je vaše jediné uživatelské rozhraní jako programátora událostí a vašeho nejlepšího přítele.
Podívejte se na manuálovou stránku, co PO DOKONČENÍ ZACHOVAT znamená i jiné věci.