मेरा मानना है कि आप इसे विपरीत दिशा में सोच रहे हैं:आप किसी संग्रहीत कार्यविधि में कोई ईवेंट नहीं बना सकते हैं, लेकिन आप कर सकते हैं एक संग्रहित प्रक्रिया बनाएं और इसे किसी ईवेंट से कॉल करें।
उदाहरण:
delimiter $$
create procedure myProc()
-- Dummy procedure to move the data from mainTable to backupTable,
-- and then clear (truncate) mainTable
begin
insert into backupTable select * from mainTable;
truncate mainTable;
end $$
delimiter ;
-- Now, suposing that you want to execute this procedure every hour:
delimiter $$
create event myEvent
on schedule every 1 hour
do
begin
call myProc();
end $$
delimiter ;
आप इसे कार्यक्षेत्र में, या सीधे कमांड लाइन क्लाइंट में किसी अन्य क्वेरी के रूप में लिख सकते हैं।
आपकी चिंता के बारे में
आपकी टिप्पणी पढ़ने के बाद, मेरा मानना है कि आप इस बात को लेकर थोड़े भ्रमित हैं कि MySQL वर्कबेंच क्या है।
MySQL वर्कबेंच केवल एक ग्राफिकल एप्लिकेशन है जो आपको एक MySQL सर्वर से कनेक्ट करने और क्वेरी और प्रशासन कार्य करने की अनुमति देता है। लेकिन कार्यक्षेत्र नहीं MySQL का मूल... यह केवल एक दर्शक है (स्टेरॉयड के साथ, शायद, लेकिन आखिरकार एक दर्शक)।
अब, इवेंट शेड्यूलर वर्कबेंच में नहीं रहता है, लेकिन MySQL सर्वर इंस्टेंस में आप कनेक्ट कर रहे हैं। जिस तरह टेबल, व्यू, प्रोसेस और फंक्शन वर्कबेंच इंटरफेस में स्टोर नहीं होते बल्कि सर्वर में इवेंट्स भी सर्वर में स्टोर हो जाते हैं।
(हां, मेरा मानना है कि यह एक प्रासंगिक SNAFU है कि शेड्यूल किए गए ईवेंट ग्राफिकल इंटरफ़ेस में कहीं भी दिखाई नहीं देते हैं, लेकिन ... पी>
हो सकता है कि आपकी एकमात्र चिंता यह है:"अरे, और क्या होगा यदि मैं जानना चाहता हूं कि ईवेंट शेड्यूलर में कौन से ईवेंट चलने के लिए निर्धारित हैं?" आप वर्तमान डेटाबेस में ईवेंट की सूची दिखाने के लिए "ईवेंट दिखाएं" क्वेरी निष्पादित कर सकते हैं, और create event
दिखाने के लिए आप "शो बनाएं ईवेंट yourEvent" निष्पादित कर सकते हैं उस घटना के लिए वाक्य रचना।
मैं जोर देता हूं:मैनुअल पढ़ें, और एक प्रति हाथ में रखें (अपने MySQL संस्करण के लिए मैनुअल डाउनलोड करें यहाँ )।