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

BEFORE UPDATE ट्रिगर का उपयोग करके टेबल में मान अपडेट करने के लिए CHECK CONSTRAINT का अनुकरण कैसे करें?


जैसा कि हम जानते हैं कि MySQL रेफरेंशियल इंटीग्रिटी के लिए फॉरेन की सपोर्ट करता है लेकिन यह CHECK कंस्ट्रेंट सपोर्ट नहीं करता। लेकिन हम ट्रिगर्स का उपयोग करके उनका अनुकरण कर सकते हैं। इसे नीचे दिए गए उदाहरण से स्पष्ट किया जा सकता है -

उदाहरण

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

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

BEFORE UPDATE ट्रिगर बनाकर 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

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

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 स्टेटमेंट का वाक्यविन्यास समान होगा सिवाय इसके कि तालिका नाम के स्थान पर हमें व्यू का नाम प्रदान करना होगा। हम Info नामक व्यू से निम्न डेटा ले रहे हैं ता

  1. - VIEWS का उपयोग करके CHECK CONSTRAINT का अनुकरण कैसे करें?

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

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

    बूलियन मान अपडेट करने के लिए UPDATE कमांड का उपयोग करें। MySQL में BOOLEAN डेटा टाइप आंतरिक रूप से TINYINT(1) में बदल जाता है जहां true = 1 और false = 0 होता है। सिंटैक्स UPDATE yourTableName SET yourColumnName = yourValue WHERE yourCondition; उदाहरण के साथ समझें सबसे पहले एक टेबल बनाते हैं: )