【问题标题】:Why mysql event schedule not working in database localhost?为什么mysql事件计划在数据库localhost中不起作用?
【发布时间】:2016-06-15 00:27:58
【问题描述】:

我跑了:SET GLOBAL event_scheduler = ON;

我的事件调度脚本是这样的:

CREATE EVENT update_status
ON SCHEDULE EVERY 2 MINUTE
DO
UPDATE customer_group
SET is_status = 1
WHERE CURRENT_TIMESTAMP >= end_date

它没有更新数据库 localhost 中的值

尽管在数据库服务器中,它是一个更新

有什么办法可以解决我的问题吗?

谢谢

【问题讨论】:

  • 您是否检查过事件调度程序是否正在运行?试试 SHOW Processlist
  • @Adrian, SELECT @@event_scheduler;

标签: mysql events


【解决方案1】:

查看以下内容。

发出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;

最后但并非最不重要的一点是,当我编写新事件时,我总是首先在事件语句中添加以记录到日志表(使用插入语句和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 的含义以及其他内容。

【讨论】:

  • @mosestoh 这是一个纯粹的mysql 例程。 PHP 不起作用。
  • 我需要你的帮助。看这里:stackoverflow.com/questions/38175735/…
  • @mosestoh 我会看看。如有必要,请使用更多总代码块对其进行更新,因为我只使用 CI 进行过一次原始查询测试。意思是,我是一个完全的菜鸟。但它确实让我感兴趣。您可以随时在Campaigns 房间内联系我。
猜你喜欢
  • 1970-01-01
  • 2014-11-13
  • 2021-08-30
  • 2018-02-18
  • 2016-07-17
  • 2014-06-11
  • 2022-11-14
  • 1970-01-01
  • 2022-01-03
相关资源
最近更新 更多