MySQL中可以實現正規表示式的資料驗證嗎?

DDD
發布: 2024-11-17 17:29:02
原創
385 人瀏覽過

Can Data Validation Using Regular Expressions be Implemented in MySQL?

MySQL 中可以強制使用正規表示式進行資料驗證嗎?

驗證資料對於確保資料完整性至關重要。正規表示式 (regex) 提供了定義約束的彈性。 MySQL 可以利用正規表示式進行資料驗證嗎?

是的,MySQL 支援正規表示式進行資料驗證。 值得注意的是,它不支援資料驗證的 CHECK 限制。相反,應該使用觸發器。

例如,您可以使用觸發器為電話列建立檢查約束:

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$$
登入後複製

此觸發器檢查傳入的電話號碼是否與指定的符合正規表示式。如果不匹配,則會發出錯誤信號並設定自訂錯誤訊息。

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 進行資料驗證。應在應用程式的多個層級驗證數據,以實現最佳數據完整性。

以上是MySQL中可以實現正規表示式的資料驗證嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板