हम एक संग्रहीत कार्यविधि बनाएंगे जो जब भी मान अद्यतन किया जाता है तो चर मान नहीं बदलता है।
आइए पहले एक टेबल बनाएं -
mysql> तालिका बनाएं DemoTable (Id int NOT NULL AUTO_INCREMENT PRIMARY KEY, Value int);क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (0.63 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> डेमोटेबल (वैल्यू) वैल्यू (100) में इंसर्ट करें; क्वेरी ओके, 1 पंक्ति प्रभावित (0.13 सेकंड) सेलेक्ट स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें:mysql> डेमोटेबल से * चुनें;
आउटपुट
+-----+----------+| आईडी | मूल्य |+----+----------+| 1 | 100 |+----+----------+1 पंक्ति सेट में (0.00 सेकंड)
निम्नलिखित संग्रहीत प्रक्रिया है जो अद्यतन करने के बाद पुराना मान दिखाती है -
mysql> DELIMITER // mysql> क्रिएट प्रोसेस अपडेटValue100() BEGIN DECLARE myValue int; @myValue चुनें:=(DemoTable से Value चुनें जहां Id=1); @myValue चुनें; अद्यतन डेमोटेबल सेट वैल्यू =200 जहां आईडी =1; @myValue चुनें:=(DemoTable से Value चुनें जहां Id=1); @myValue चुनें; END // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित हुई हैं (0.21 सेकंड)mysql> DELIMITER;
अब आप कॉल कमांड का उपयोग करके संग्रहीत कार्यविधि को कॉल कर सकते हैं -
mysql> कॉल updateValue100();