MySQL समाधान:
आपको MySQL event
require की आवश्यकता है एक समय के आधार पर चलाने के लिए।
और मेरा सुझाव है कि आप update
लिखें आपकी स्थिति के आधार पर बयान और उसी प्रक्रिया को उस ईवेंट शेड्यूलर से लिंक करें जिसे आप हर दिन शुरू करना चाहते हैं।
आप इसे निम्न के रूप में कर सकते हैं:।
उदाहरण :
delimiter //
drop event if exists event_scheduling_sample;
create event if not exists event_scheduling_sample
-- on schedule every 86400 second starts 00:00:00
-- at timestamp( adddate( current_date, 1 ),'00:00:00' )
-- on schedule every 1 day
-- starts current_timestamp
-- ends current_timestamp + interval '5' day
-- on schedule every 1 day
-- starts current_timestamp
-- ends timestamp( current_date,'23:59:59' )
on schedule every 1 day
starts timestamp( current_date + 1, '00:00:00' )
comment 'event scheduling sample'
do
call db_name.procedure_name_that_updates_the_user_records();
;
//
delimiter ;
देखें :MySQL:CREATE EVENT Syntax
इवेंट शेड्यूलर की डिफ़ॉल्ट स्थिति अक्षम है।
आपको इसे निम्न में से किसी भी कथन द्वारा सक्षम करने की आवश्यकता है।
SET GLOBAL event_scheduler = ON;
SET @@global.event_scheduler = ON;
SET GLOBAL event_scheduler = 1;
SET @@global.event_scheduler = 1;
जब इवेंट शेड्यूलर चालू होता है, तो इवेंट शेड्यूलर थ्रेड SHOW PROCESSLIST
के आउटपुट में सूचीबद्ध होता है एक डेमॉन प्रक्रिया के रूप में, और इसकी स्थिति का प्रतिनिधित्व यहाँ दिखाया गया है:
mysql> SHOW PROCESSLIST\G
*************************** 1. row ***************************
Id: 1
User: root
Host: localhost
db: NULL
Command: Query
Time: 0
State: NULL
Info: show processlist
*************************** 2. row ***************************
Id: 2
User: event_scheduler
Host: localhost
db: NULL
Command: Daemon
Time: 3
State: Waiting for next activation
Info: NULL
2 rows in set (0.00 sec)
एक बार इवेंट शेड्यूलर चालू हो जाने पर, आप इसे काम करते हुए देखेंगे।
देखें :MySQL इवेंट शेड्यूलर कॉन्फ़िगरेशन