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

हम एक MySQL ट्रिगर कैसे बना और उपयोग कर सकते हैं?


नया ट्रिगर बनाने के लिए, हमें CREATE TRIGGER स्टेटमेंट का उपयोग करना होगा। इसका सिंटैक्स इस प्रकार है -

ट्रिगर बनाएं ट्रिगर_नाम ट्रिगर_टाइम ट्रिगर_इवेंटॉन टेबल_नामप्रत्येक पंक्ति के लिए...END;

यहाँ,

  • Trigger_name ट्रिगर का नाम है जिसे CREATE TRIGGER स्टेटमेंट के बाद रखा जाना चाहिए। ट्रिगर_नाम के लिए नामकरण परंपरा [ट्रिगर टाइम] _ [टेबल नेम] _ [ट्रिगर इवेंट] की तरह हो सकती है। उदाहरण के लिए, पहले_student_update या after_student_insert ट्रिगर का नाम हो सकता है।
  • Trigger_time ट्रिगर सक्रियण का समय है और यह पहले या बाद में हो सकता है। ट्रिगर को परिभाषित करते समय हमें सक्रियण समय निर्दिष्ट करना होगा। यदि हम तालिका में किए गए परिवर्तन से पहले कार्रवाई को संसाधित करना चाहते हैं और तालिका में किए गए परिवर्तन के लिए कार्रवाई पोस्ट को संसाधित करना चाहते हैं तो हमें पहले का उपयोग करना चाहिए।
  • Trigger_event INSERT, UPDATE, या DELETE हो सकता है। यह घटना ट्रिगर को लागू करने का कारण बनती है। एक ट्रिगर केवल एक घटना द्वारा लागू किया जा सकता है। एक ट्रिगर को परिभाषित करने के लिए जिसे कई ईवेंट द्वारा लागू किया जाता है, हमें कई ट्रिगर्स को परिभाषित करना होगा, प्रत्येक ईवेंट के लिए एक।
  • Table_name तालिका का नाम है। दरअसल, एक ट्रिगर हमेशा एक विशिष्ट तालिका से जुड़ा होता है। तालिका के बिना, ट्रिगर मौजूद नहीं होगा इसलिए हमें 'चालू' कीवर्ड के बाद तालिका का नाम निर्दिष्ट करना होगा।
  • BEGIN…END वह ब्लॉक है जिसमें हम ट्रिगर के तर्क को परिभाषित करेंगे।

उदाहरण

मान लीजिए कि हम छात्र_आयु तालिका पर ट्रिगर लागू करना चाहते हैं जो इस प्रकार बनाई गई है -

mysql> तालिका बनाएं Student_age(आयु INT, नाम Varchar(35));क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.80 सेकंड)

अब, यदि कोई उम्र <0 डालने का प्रयास करता है, तो निम्न ट्रिगर स्वचालित रूप से आयु =0 सम्मिलित करेगा।

mysql> DELIMITER //mysql> प्रत्येक ROWBEGINIF NEW.age के लिए student_age पर डालने से पहले_inser_studentage से पहले ट्रिगर बनाएं <0 फिर SET NEW.age =0;END IF;END // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.30 सेकंड) 

अब, इस ट्रिगर को लागू करने के लिए, हम निम्नलिखित कथनों का उपयोग कर सकते हैं -

mysql> छात्र_आयु (आयु, नाम) मान (30, 'राहुल') में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.14 सेकंड) mysql> छात्र_आयु (आयु, नाम) मानों में डालें (-10, 'हर्षित') );क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड)mysql> Student_age से * चुनें;+----------+-----------+| उम्र | नाम |+----------+---------+| 30 | राहुल || 0 | हर्षित |+----------+--------+2 पंक्तियों में सेट (0.00 सेकंड)

उपरोक्त परिणाम सेट दर्शाता है कि तालिका में ऋणात्मक मान डालने पर ट्रिगर द्वारा 0 सम्मिलित किया जाएगा।

उपरोक्त एक ट्रिगर का उदाहरण था जिसमें ट्रिगर_इवेंट के साथ INSERT और ट्रिगर_टाइम पहले हैं।


  1. MySQL क्रिएट टेबल क्वेरी में CHAR_LENGTH () का उपयोग कैसे करें?

    तालिका निर्माण के समय CHAR_LENGTH(yourColumnName) का प्रयोग करें। आइए पहले एक उदाहरण देखें और एक टेबल बनाएं - टेबल बनाएं डेमोटेबल (आईडी नॉट न्यूल ऑटो_इनक्रिमेंट प्राइमरी की, टाइटल वर्चर (200), नंबर_ऑफ_कैरेक्टर्स इंट (चार_लेंथ (टाइटल))); क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.18 सेकंड) इंसर्ट कमांड का

  1. एकल MySQL क्वेरी में COUNT () और IF () का उपयोग कैसे करें?

    आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(isValidUser boolean);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.70 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (गलत); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.09 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर

  1. TikTok अवतार कैसे बनाएं और उपयोग करें

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