我跑了:main.cpp
我的事件调度程序脚本是这样的:
test.cpp
它没有更新数据库localhost中的值
即使在数据库服务器中,它也是一个更新
解决我问题的任何解决方案?
谢谢
答案 0 :(得分:3)
请查看以下内容。
发出select CURRENT_TIMESTAMP;
或
select count(*) as theCount
from customer_group
where is_status=1 and CURRENT_TIMESTAMP >= end_date;
换句话说,做一些侦察。事件因没有用户界面而无声地成功或失败。
运行一些命令,如:
show variables where variable_name='event_scheduler';
- 目前关闭(或可能开启)
在创建过程中指定活动的开始时间,并指定ON COMPLETION PRESERVE
,例如
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 ;
启用事件处理程序:
SET GLOBAL event_scheduler = ON; -- turn her on and confirm below
确认:
show variables where variable_name='event_scheduler';
按数据库名称检查特定数据库中所有事件的状态:
show events from stackoverflow; -- note stackoverflow is my database name
在当前选定的数据库中按名称禁用或启用某个事件:
ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;
最后但并非最不重要的是,当我编写新事件时,我总是首先在事件语句中添加日志表(带有insert语句和日期时间now()
)。那样的话,我知道它被解雇了,像你这样的where子句中的数据也许并没有给我一个错误的读物。
我的意思是我到处疯狂。最初,我稍后再说出来:
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
请记住所有实际目的(除了你真正关心你的问题的表格)...我EvtsLog
是你作为活动程序员和你最好的朋友的唯一用户界面。
请查看手册页,了解ON COMPLETION PRESERVE的含义以及其他内容。