हाँ आप कर सकते हैं। MySQL रेगेक्स का समर्थन करता है (http://dev.mysql.com/doc /refman/5.6/hi/regexp.html ) और डेटा सत्यापन के लिए आपको एक ट्रिगर का उपयोग करना चाहिए क्योंकि MySQL CHECK बाधा का समर्थन नहीं करता है (आप हमेशा एक विकल्प के रूप में PostgreSQL पर जा सकते हैं :)। ध्यान दें! ध्यान रखें कि भले ही MySQL में CHECK बाधा निर्माण हो, दुर्भाग्य से MySQL (अब तक 5.6) चेक बाधाओं के विरुद्ध डेटा को मान्य नहीं करता है। http://dev.mysql.com/doc के अनुसार /refman/5.6/hi/create-table.html :"चेक क्लॉज को पार्स किया गया है लेकिन सभी स्टोरेज इंजनों ने इसे नजरअंदाज कर दिया है।"
आप फ़ोन . कॉलम के लिए चेक बाधा जोड़ सकते हैं :
CREATE TABLE data (
phone varchar(100)
);
DELIMITER $$
CREATE TRIGGER trig_phone_check BEFORE INSERT ON data
FOR EACH ROW
BEGIN
IF (NEW.phone REGEXP '^(\\+?[0-9]{1,4}-)?[0-9]{3,10}$' ) = 0 THEN
SIGNAL SQLSTATE '12345'
SET MESSAGE_TEXT = 'Wroooong!!!';
END IF;
END$$
DELIMITER ;
INSERT INTO data VALUES ('+64-221221442'); -- should be OK
INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!!
हालाँकि आपको डेटा सत्यापन के लिए केवल MySQL (आपके मामले में डेटा परत) पर भरोसा नहीं करना चाहिए। डेटा को आपके ऐप के सभी स्तरों पर सत्यापित किया जाना चाहिए।