Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

जब रिकॉर्ड अपडेट किए जाते हैं तो मैं एक MySQL संग्रहीत प्रक्रिया में परिवर्तनीय मान से कैसे बचूं?

<घंटा/>

हम एक संग्रहीत कार्यविधि बनाएंगे जो जब भी मान अद्यतन किया जाता है तो चर मान नहीं बदलता है।

आइए पहले एक टेबल बनाएं -

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();

आउटपुट

<पूर्व>+------------------------------------------ ---------+| @myValue:=(DemoTable से Value का चयन करें जहां Id=1) |+---------------------------------- ---------------------+| 100 |+-------------------------------------------------------- --------+1 पंक्ति सेट में (0.00 सेकंड)+----------+| @myValue |+----------+| 100 |+----------+1 पंक्ति सेट में (0.01 सेकंड)+-------------------------- ----------------------------+| @myValue:=(DemoTable से Value का चयन करें जहां Id=1) |+---------------------------------- ---------------------+| 200 |+-------------------------------------------------------- --------+1 पंक्ति में सेट (0.16 सेकंड)+----------+| @myValue |+----------+| 200 |+----------+1 पंक्ति में सेट (0.17 सेकंड)क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.18 सेकंड)
  1. MySQL के साथ दिनांक रिकॉर्ड वाली तालिका में दिनांक कैसे बदलें?

    मान लीजिए कि आपको तारीख बदलने और साल जोड़ने की जरूरत है। इसके लिए DATE_ADD() के साथ UPDATE कमांड का इस्तेमाल करें। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable1984 (शिपिंग दिनांक दिनांक);क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - De

  1. एक कॉलम के मान को एक MySQL संग्रहीत कार्यविधि के चर में संग्रहीत करें

    एक चर घोषित करने के लिए, MySQL संग्रहीत कार्यविधि में DECLARE का उपयोग करें। आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.49 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable2034(StudentName,StudentAge) में डालें मान (माइक, 19); क्वेरी ठीक है, 1 पंक्ति प्र

  1. MySQL में डेटाबेस में डालने पर दशमलव का मान बदलें (19, 2)?

    सटीक वास्तविक मान को संग्रहीत करने के लिए, आपको 2 दशमलव बिंदु के साथ truncate() का उपयोग करने की आवश्यकता है। आइए एक टेबल बनाएं - तालिका बनाने की क्वेरी निम्नलिखित है। );क्वेरी ठीक, 0 पंक्तियाँ प्रभावित (1.12 सेकंड) इंसर्ट कमांड की मदद से टेबल में कुछ रिकॉर्ड डालें - डेमो59 मानों में डालें (छंटन