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 

वर्तमान चयनित डीबी में नाम से एक निश्चित घटना को अक्षम या सक्षम करें:

ALTER EVENT Every_2_Minutes_QuestionUpdateImport disable;
ALTER EVENT Every_2_Minutes_QuestionUpdateImport enable;

और आखिरी लेकिन कम से कम, जब मैं एक नया कार्यक्रम लिख रहा होता हूं, तो मैं हमेशा एक लॉग टेबल पर लॉग इन करने के लिए इवेंट स्टेटमेंट में शुरुआत में जोड़ता हूं (एक इंसर्ट स्टेटमेंट और now() के डेटाटाइम के साथ) ) इस तरह, मुझे पता है कि इसे निकाल दिया गया है और आपके जैसे खंड में वह डेटा शायद मुझे पूरी बात पर गलत पढ़ने नहीं दे रहा है।

और मेरा मतलब है कि मैं हर जगह पागल हो जाता हूं। प्रारंभ में, फिर मैं इसे बाद में हटा देता हूं:

    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. MySQL क्वेरी टाइमिंग आउट:(70100):क्वेरी निष्पादन बाधित हो गया था

  2. php:सत्र बनाम डेटाबेस

  3. मैसकल JDBC ड्राइवर ClassNotFoundException

  4. लारवेल क्रिप्ट - मूल्यों की तुलना

  5. एक बटन क्लिक करने के बाद मोडल पॉपअप विंडो पर चयनित आईडी के आधार पर डेटा दिखाएं php mysql