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

तालिका में मूल्यों को अद्यतन करने के लिए CHECK CONSTRAINT का अनुकरण करने के लिए अद्यतन ट्रिगर का उपयोग कैसे किया जा सकता है?


जैसा कि हम जानते हैं कि MySQL संदर्भात्मक अखंडता के लिए विदेशी कुंजी का समर्थन करता है लेकिन यह CHECK बाधा का समर्थन नहीं करता है। लेकिन हम ट्रिगर्स का उपयोग करके उनका अनुकरण कर सकते हैं। इसे नीचे दिए गए उदाहरण की मदद से स्पष्ट किया जा सकता है -

उदाहरण

मान लीजिए हमारे पास 'कार' नाम की एक टेबल है जिसमें फिक्स सिंटैक्स रजिस्ट्रेशन नंबर हो सकता है जैसे दो अक्षर, एक डैश, तीन अंक, एक डैश, दो अक्षर इस प्रकार हैं -

mysql> Create table car (number char(9));
Query OK, 0 rows affected (0.32 sec)

मानों को अद्यतन करने के लिए CHECK CONSTRAINT का अनुकरण करने के लिए अद्यतन से पहले ट्रिगर बनाना -

अब, मान लीजिए कि यदि हम गलत मान के साथ तालिका को अपडेट करने का प्रयास करेंगे तो MySQL हमें ऐसा करने से नहीं रोकेगा -

mysql> update car set number='AB-2X5-YZ';
Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0

उपरोक्त क्वेरी ने तालिका 'कार' में गलत मान अपडेट किया है। निम्नलिखित क्वेरी में हम एक अद्यतन से पहले ट्रिगर बनाने जा रहे हैं जो हमें तालिका में गलत डेटा अपडेट करने से रोकेगा -

mysql> delimiter //
mysql> create trigger car_update_value before update on car
-> for each row
-> begin
-> if new.number not rlike '^[[:alpha:]]{2}-[[:digit:]]{3}-[[:alpha:]]{2}$'
-> then
->  signal sqlstate '45000' set message_text = 'Not a valid number';
-> end if;
-> end //
Query OK, 0 rows affected (0.11 sec)

mysql> Delimiter ;

mysql> update car set number='AB-2X5-YZ';
ERROR 1644 (45000): Not a valid number

  1. हम MySQL व्यू में किसी भी वैल्यू को कैसे अपडेट कर सकते हैं क्योंकि हम MySQL टेबल में वैल्यूज को अपडेट कर सकते हैं?

    जैसा कि हम जानते हैं कि UPDATE स्टेटमेंट की मदद से हम MySQL टेबल में वैल्यूज को अपडेट कर सकते हैं और इसी तरह हम MySQL व्यूज में वैल्यूज को अपडेट कर सकते हैं। UPDATE स्टेटमेंट का सिंटैक्स वही होगा, टेबल नाम के स्थान पर हमें व्यू का नाम देना होगा। हम उपरोक्त अवधारणा को स्पष्ट करने के लिए इन्फो नाम के

  1. CHECK CONSTRAINT का अनुकरण करने के लिए VIEWS का उपयोग कैसे किया जा सकता है?

    जैसा कि हम जानते हैं कि MySQL संदर्भात्मक अखंडता के लिए विदेशी कुंजी का समर्थन करता है लेकिन यह CHECK बाधा का समर्थन नहीं करता है। लेकिन हम ट्रिगर्स का उपयोग करके उनका अनुकरण कर सकते हैं। इसे नीचे दिए गए उदाहरण की मदद से स्पष्ट किया जा सकता है - उदाहरण मान लीजिए कि हमारे पास car1 नाम की एक टेबल है ज

  1. मैं MySQL में बूलियन मानों को कैसे अपडेट कर सकता हूं?

    आप UPDATE कमांड का उपयोग करके बूलियन मान को अपडेट कर सकते हैं। यदि आप बूलियन डेटा प्रकार का उपयोग करते हैं, तो MySQL आंतरिक रूप से इसे टिनिंट (1) में बदल देता है। यह सही या गलत शाब्दिक हो सकता है जिसमें सत्य 1 से टिनीिंट (1) और असत्य 0 से टिनिंट (1) को इंगित करता है। वाक्य रचना इस प्रकार है - अपना