Mysql
 sql >> база данни >  >> RDS >> Mysql

Защо графикът на събитията на mysql не работи в локалния хост на базата данни?

Разгледайте следното.

Издайте 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 

Деактивирайте или активирайте определено събитие по име в текущо избрания db:

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 моят е единственият ви потребителски интерфейс като програмист на събития и ваш най-добър приятел.

Вижте страницата с ръководството за това, което ЗАПЪРВА ПРИ ЗАВЪРШВАНЕ средства, както и други неща.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. четене на BLOB изображение от MySQL база данни

  2. PDO бяха редове, засегнати по време на оператор за изпълнение

  3. Многоезичен уебсайт с най-добри практики

  4. Как да изберете РАЗЛИЧНИ редове, без да е избрано полето ПОРЪЧАЙ ПО

  5. Редакторът на WordPress не актуализира файлове:Не може да комуникира обратно със сайта, за да провери за фатални грешки