Olhe para o seguinte.
Emita um
select CURRENT_TIMESTAMP;
ou select count(*) as theCount
from customer_group
where is_status=1 and CURRENT_TIMESTAMP >= end_date;
Em outras palavras, faça algum reconhecimento. Os eventos são bem-sucedidos ou falham silenciosamente, pois não possuem interface de usuário.
Execute alguns comandos como:
show variables where variable_name='event_scheduler';
-- atualmente DESLIGADO (ou pode estar LIGADO)
Especifique a hora de início do seu evento durante a criação e especifique
ON COMPLETION PRESERVE
tal como 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 ;
Ative o manipulador de eventos:
SET GLOBAL event_scheduler = ON; -- turn her on and confirm below
Confirme:
show variables where variable_name='event_scheduler';
Examine o status de todos os eventos em um banco de dados específico pelo nome do banco de dados:
show events from stackoverflow; -- note stackoverflow is my database name
Desabilite ou habilite um determinado evento por nome no banco de dados selecionado atual:
ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;
E por último, mas não menos importante, quando estou escrevendo um novo evento, sempre adiciono inicialmente nas instruções de evento para registrar em uma tabela de log (com uma instrução de inserção e uma data e hora de
now()
). Dessa forma, eu sei que ele disparou e que os dados em uma cláusula where como a sua talvez não estejam me dando uma leitura errada da coisa toda. E eu quero dizer que eu enlouqueço em todo o lugar. Inicialmente, então eu remito mais tarde:
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
Lembre-se para todos os propósitos práticos (exceto talvez sua tabela que você realmente se importa com sua pergunta) ... que
EvtsLog
minha é sua única interface de usuário como programador de eventos e seu melhor amigo. Veja na página do manual o que ON COMPLETION PRESERVE significa, bem como outras coisas.