PostgreSQL में संग्रहित प्रक्रियाएं कैसे बनाएं

Postgresql Mem Sangrahita Prakriya Em Kaise Bana Em



PostgreSQL के साथ, संग्रहीत प्रक्रियाएं बनाना संभव है जो विभिन्न रूटीन को परिभाषित करती हैं जिन्हें कॉल किए जाने पर निष्पादित किया जाना चाहिए। ये रूटीन SQL कथनों से युक्त होते हैं जो आपके डेटाबेस पर परिभाषित कार्य करते हैं। उदाहरण के लिए, आप एक संग्रहीत प्रक्रिया बना सकते हैं जो कॉल करने पर आपकी तालिका में मानों को अपडेट कर देती है।

संग्रहीत प्रक्रियाएँ डेटाबेस अनुकूलन और पुन: प्रयोज्यता को बढ़ाने में मदद करती हैं। एक ही क्वेरी को निष्पादित करने के बजाय, आप कार्य को एक संग्रहीत प्रक्रिया के रूप में बना सकते हैं जिसे आप आवश्यकता पड़ने पर कॉल करेंगे। आप इस पोस्ट के अंत तक संग्रहित प्रक्रियाओं के बारे में सब कुछ सीखेंगे।

PostgreSQL में संग्रहीत प्रक्रियाओं के साथ कार्य करना

एक PostgreSQL उपयोगकर्ता के रूप में, आपने देखा होगा कि PostgreSQL फ़ंक्शंस लेनदेन निष्पादित नहीं करते हैं। हालाँकि लेन-देन बनाना संभव है, लेकिन इसे प्रतिबद्ध करना या इसे पिछली स्थिति में वापस लाना संभव नहीं है। हालाँकि, संग्रहीत प्रक्रियाओं का उपयोग करके इन सीमाओं को दरकिनार कर दिया जाता है।







PostgreSQL में संग्रहीत प्रक्रिया बनाने के लिए मूल वाक्यविन्यास यहां दिया गया है:



प्रक्रिया बनाएं या बदलें प्रक्रिया_नाम(

पैरामीटर[s] data_type

)

भाषा plpsql;

एएस $$

घोषित

वेरिएबल_यदि_कोई डेटा_प्रकार

शुरू

तर्क

अंत;

$$

दिए गए सिंटैक्स से ध्यान देने योग्य मुख्य बातें हैं 'procedure_name' जो वह नाम है जिसे आप संग्रहीत प्रक्रिया के लिए उपयोग करेंगे, वे पैरामीटर जिन्हें आप शामिल करना चाहते हैं और उनके डेटा प्रकार, और तर्क जो मुख्य रूप से SQL कथन हैं।



आइए आपको यह समझने में मदद करने के लिए तीन उदाहरण दें कि PostgreSQL में संग्रहीत कार्यविधियाँ कैसे बनाई जाएँ।





उदाहरण 1: किसी संख्या का वर्ग निकालने की संग्रहीत प्रक्रिया

हमारे पहले उदाहरण के लिए, हम एक संग्रहीत प्रक्रिया बनाते हैं जो टर्मिनल पर आउटपुट प्रिंट करने के तरीके के रूप में 'RAISE NOTICE' कथन का उपयोग करता है। संग्रहीत प्रक्रिया वह पूर्णांक मान लेती है जो आप इसे कॉल करते समय देते हैं और इसके वर्ग की गणना करते हैं।

यहां बताया गया है कि हम संग्रहीत प्रक्रिया कैसे बनाते हैं:



हम अपने पैरामीटर को 'num1' नाम देते हैं, और यह एक पूर्णांक है। तर्क भाग के लिए, हम परिभाषित करते हैं कि यह 'num1' का वर्ग कैसे प्राप्त करता है और इसे वर्ग चर के रूप में संग्रहीत करता है। जब हम कमांड निष्पादित करते हैं, तो हमें 'प्रक्रिया बनाएं' आउटपुट मिलता है जो पुष्टि करता है कि हम संग्रहीत प्रक्रिया को सफलतापूर्वक बनाने में कामयाब रहे।

अगला कार्य प्रक्रिया को कॉल करना और उसे अपेक्षित तर्क देना है।

कॉल प्रक्रिया_नाम(तर्क);

आपको CALL आउटपुट मिलेगा जो दिखाएगा कि संग्रहीत प्रक्रिया निष्पादित हो गई है, और हमें अपेक्षित आउटपुट मिल रहा है, जो इस मामले में, हमारे द्वारा जोड़े गए तर्क का वर्ग है।

उदाहरण 2: तालिका प्रविष्टि में मान सम्मिलित करने की एक संग्रहीत प्रक्रिया

निम्नलिखित दो उदाहरण दिखाते हैं कि एक संग्रहीत प्रक्रिया कैसे बनाई जाए जो डेटाबेस तालिका के साथ काम करती है। आइए जल्दी से 'छात्र' तालिका बनाएं जिसके साथ हम काम करेंगे।

इस उदाहरण के लिए, हम एक संग्रहीत प्रक्रिया बनाते हैं जो उपयोगकर्ता को नई बनाई गई तालिका में मान डालने की अनुमति देती है। ध्यान दें कि जब हम संग्रहित प्रक्रिया को कॉल करते हैं तो हम उन मापदंडों को कैसे निर्दिष्ट करते हैं जिन्हें हम तर्क के रूप में जोड़े जाने की उम्मीद करते हैं। इसके अलावा, हम उस तर्क को परिभाषित करते हैं जो जोड़े गए तर्कों को लेता है और 'छात्रों' तालिका में INSERT SQL कथन निष्पादित करता है।

हम निम्नलिखित कमांड चलाकर उपलब्ध संग्रहीत प्रक्रियाओं की जाँच कर सकते हैं:

\df

पहली संग्रहीत प्रक्रिया जिसे हम निम्नलिखित आउटपुट से देख सकते हैं वह 'add_student' है जिसे हमने पहले बनाया था।

अब, इसे निष्पादित करने के लिए संग्रहीत प्रक्रिया को कॉल करें। निम्नलिखित छवि दिखाती है कि हमारे पास एक खाली तालिका कैसे है, लेकिन हमने पहले छात्र को जोड़ने के लिए संग्रहीत प्रक्रिया को बुलाया:

यदि हम अपनी तालिका में मानों को सूचीबद्ध करते हैं, तो ध्यान दें कि कॉल प्रक्रिया कमांड के साथ हमने जो तर्क जोड़े हैं वे हमारी तालिका में हमारे पहले छात्र के लिए मान कैसे हैं। इस प्रकार आप तालिका में मान सम्मिलित करने के लिए एक संग्रहीत प्रक्रिया बनाते हैं।

ध्यान दें कि संग्रहीत प्रक्रिया बनाते समय, त्रुटियों से बचने के लिए आपके द्वारा निर्दिष्ट पैरामीटर आपकी तालिका में अपेक्षित से मेल खाना चाहिए। इसके अलावा, डेटा प्रकार का मिलान होना चाहिए।

उदाहरण 3: तालिका प्रविष्टि को अद्यतन करने के लिए एक संग्रहीत प्रक्रिया

आगे बढ़ते हुए, आइए एक और संग्रहीत प्रक्रिया बनाएं जो तालिका प्रविष्टि को अद्यतन करती है। यदि आप हमारी तालिका में मानों को अद्यतन करने का त्वरित तरीका चाहते हैं, तो आप निम्नानुसार एक अद्यतन संग्रहीत प्रक्रिया बना सकते हैं:

निर्दिष्ट करें कि आप WHERE कीवर्ड का उपयोग करके कौन सा कॉलम अपडेट करना चाहते हैं और SET कीवर्ड का उपयोग करके नया मान अपडेट करना चाहते हैं। परिवर्तनों को जारी रखने के लिए आपको COMMIT कीवर्ड जोड़ना होगा।

आइए अद्यतन संग्रहीत प्रक्रिया को कॉल करें और अपेक्षित तर्क जोड़ें: 'student_id' और नया पाठ्यक्रम।

यदि हम अपनी तालिका में प्रविष्टियाँ सूचीबद्ध करते हैं, तो हम सत्यापित कर सकते हैं कि हमारे पास उस विशेष छात्र के लिए अद्यतन पाठ्यक्रम है जिसे हमने लक्षित किया है। अद्यतन संग्रहीत प्रक्रिया इसी प्रकार काम करती है।

निष्कर्ष

आप PostgreSQL में कोई भी संग्रहीत प्रक्रिया बना सकते हैं। आपको अनुसरण करने के लिए केवल सिंटैक्स को समझने की आवश्यकता है और फिर संग्रहीत प्रक्रिया के लिए अपने तर्क को परिभाषित करना होगा। वहां से, संग्रहीत प्रक्रिया को कॉल करें और सत्यापित करें कि यह अपेक्षा के अनुरूप निष्पादित हुई है। इस पोस्ट में PostgreSQL में संग्रहीत प्रक्रियाओं के बारे में बताया गया है और उन्हें बनाने के तरीके के उदाहरण दिए गए हैं।