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

हम विचारों का उपयोग करके CHECK CONSTRAINT का अनुकरण कैसे कर सकते हैं?

<घंटा/>

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

उदाहरण

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

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

mysql> Insert into car1 values('AB-235-YZ');
Query OK, 1 row affected (0.10 sec)

उपरोक्त मान मान्य है लेकिन उस मूल्य के बारे में क्या है जिसे हम अगली क्वेरी में सम्मिलित करने जा रहे हैं।

mysql> insert into car1 values('AB-2X5-YZ');
Query OK, 1 row affected (0.04 sec)

उपरोक्त मान मान्य नहीं है क्योंकि इसमें अंकों के बीच एक वर्ण होता है जो हमारे द्वारा उपयोग किए जा रहे निश्चित सिंटैक्स के विरुद्ध होता है।

मानों को डालने और अपडेट करने के लिए CHECK CONSTRAINT का अनुकरण करने के लिए VIEW बनाना -

mysql> Create view car_invalid_check as
-> Select * from car1 WHERE number rlike '^[[:alpha:]]{2}-[[:digit:]]{3}-[[:alpha:]]{2}$'
-> with check option;
Query OK, 0 rows affected (0.12 sec)

mysql> Insert into car_invalid_check values('AB-2X5-YZ');
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'

mysql> Insert into car_invalid_check values('AB-235-YZ');
Query OK, 1 row affected (0.09 sec)

mysql> Update car_invalid_check SET NUMBER = 'AB-2X5-ZT';
ERROR 1369 (HY000): CHECK OPTION failed 'query.car_invalid_check'

  1. MySQL अद्यतन का उपयोग करके हाइफ़न कैसे निकालें?

    MySQL अपडेट का उपयोग करके हाइफ़न को हटाने के लिए, आप रिप्लेस () फ़ंक्शन का उपयोग कर सकते हैं। वाक्य रचना इस प्रकार है - अपना टेबलनाम अपडेट करें अपना कॉलमनाम सेट करें=बदलें(yourColumnName,-, ); उपरोक्त वाक्य रचना को समझने के लिए, आइए एक तालिका बनाते हैं। तालिका बनाने की क्वेरी इस प्रकार है - );क्व

  1. MySQL दृश्यों का उपयोग करके संख्याओं में विभाजक कैसे जोड़ें?

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

  1. समय अंतर कैसे प्राप्त करें यह जांचने के लिए MySQL क्वेरी

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.87 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - में डालें DemoTable1570 मान (2019-10-15 16:10:00); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.15 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें - DemoTabl