MySQL स्टोर्ड प्रोसीजर लिखना और उपयोग करना शुरू करने से पहले हमारे पास निम्नलिखित पूर्वापेक्षाएँ होनी चाहिए:
MySQL संस्करण
जैसा कि हम जानते हैं कि MySQL 5 ने स्टोर्ड प्रोसीजर पेश किए, इसलिए सबसे पहले हमें स्टोर्ड प्रोसीजर लिखना और उपयोग करना शुरू करने से पहले MySQL के संस्करण की जांच करनी होगी। इसे निम्नलिखित क्वेरी से किया जा सकता है:
mysql> SELECT VERSION(); +-----------+ | VERSION() | +-----------+ | 5.7.20 | +-----------+ 1 row in set (0.10 sec)
वर्तमान यूजर के लिए विशेषाधिकार
वास्तव में, CREATE PROCEDURE और CREATE FUNCTION के लिए CREATE ROUTINE विशेषाधिकार की आवश्यकता होती है। डिफ़ॉल्ट रूप से, MySQL स्वचालित रूप से रूटीन निर्माता को ALTER ROUTINE और EXECUTE विशेषाधिकार देता है। इस व्यवहार को automatic_sp_privileges सिस्टम वेरिएबल को अक्षम करके बदला जा सकता है। वर्तमान यूजर के विशेषाधिकारों की जांच निम्नलिखित क्वेरी से की जा सकती है:
mysql> SHOW PRIVILEGES
डेटाबेस चुनना
प्रोसीजर बनाने से पहले हमें उपलब्ध डेटाबेस से एक डेटाबेस चुनना होगा। इसे निम्नलिखित क्वेरी की सहायता से किया जा सकता है:
mysql> USE query; Database changed
उपरोक्त क्वेरी से, यह स्पष्ट है कि हम 'query' नामक डेटाबेस का उपयोग कर रहे हैं।
डिलीमीटर चुनना
डिलीमीटर वह वर्ण या वर्णों की स्ट्रिंग है जिसका उपयोग SQL स्टेटमेंट को पूरा करने के लिए किया जाता है। डिफ़ॉल्ट रूप से, हम सेमीकॉलन (;) का उपयोग डिलीमीटर के रूप में करते हैं। लेकिन यह स्टोर्ड प्रोसीजर में समस्या पैदा करता है क्योंकि एक प्रोसीजर में कई स्टेटमेंट्स हो सकते हैं, और प्रत्येक को सेमीकॉलन से समाप्त होना चाहिए। इसलिए अपने डिलीमीटर के लिए, एक ऐसी स्ट्रिंग चुनें जो स्टेटमेंट या प्रोसीजर के भीतर शायद ही कभी आती हो। हम डबल बैकस्लैश // या डबल डॉलर साइन $$ या अपनी पसंद के किसी अन्य डिलीमीटर को चुन सकते हैं। इसे निम्नलिखित क्वेरी की सहायता से किया जा सकता है:
mysql> DELIMITER // ;
अब, डिफ़ॉल्ट डिलीमीटर // साइन में बदल दिया गया है और इसे निम्नलिखित क्वेरी से जांचा जा सकता है:
mysql> SELECT * FROM student_info // +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 100 | Aarav | Delhi | Computers | | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 110 | Rahul | Chandigarh | History | +------+---------+------------+------------+ 4 rows in set (0.00 sec)