हां, MySQL में रेगुलर एक्सप्रेशन का उपयोग करके डेटा चेकिंग लागू करना संभव है। पहले आपको एक टेबल बनाना होगा। उसके बाद आपको टेबल में इन्सर्ट से पहले एक ट्रिगर बनाना होगा। यहां हम फोन नंबर फॉर्मेट की जांच करेंगे।
टेबल बनाने की क्वेरी निम्नलिखित है:
mysql> create table enforceDataUsingRegularExpression
-> (
-> yourPhoneNumber VARCHAR(60)
-> ); Query OK, 0 rows affected (0.59 sec)
ट्रिगर बनाने की क्वेरी निम्नलिखित है:
mysql> DELIMITER //
mysql> CREATE TRIGGER enforce_phone_check BEFORE INSERT ON enforceDataUsingRegularExpression
-> FOR EACH ROW
-> BEGIN
-> IF (NEW.yourPhoneNumber REGEXP '^(\\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN
-> SIGNAL SQLSTATE '33455'
-> SET MESSAGE_TEXT = 'Your Phone Number is incorrect';
-> END IF;
-> END //
Query OK, 0 rows affected (0.16 sec)
mysql> DELIMITER ;
अब MySQL में रेगुलर एक्सप्रेशन का उपयोग करके डेटा चेकिंग लागू करते समय टेबल में रिकॉर्ड इन्सर्ट करने पर एरर देखें:
mysql> INSERT INTO enforceDataUsingRegularExpression VALUES("+55242-64576"); ERROR 1644 (33455): Your Phone Number is incorrect
mysql> INSERT INTO enforceDataUsingRegularExpression VALUES("+76-WD1232221"); ERROR 1644 (33455): Your Phone Number is incorrect
अब सही डेटा इन्सर्ट कर रहे हैं यानी सही फोन नंबर, जो निम्नलिखित है:
mysql> INSERT INTO enforceDataUsingRegularExpression VALUES("+55-1232221"); Query OK, 1 row affected (0.13 sec)
SELECT स्टेटमेंट का उपयोग करके टेबल से सभी रिकॉर्ड प्रदर्शित करें।
क्वेरी निम्नलिखिक है:
mysql> SELECT * FROM enforceDataUsingRegularExpression;
निम्नलिखित आउटपुट है:
+-----------------+ | yourPhoneNumber | +-----------------+ | +55-1232221 | +-----------------+ 1 row in set (0.00 sec)