ホームページ  >  記事  >  データベース  >  正規表現を使用したデータ検証は MySQL に実装できますか?

正規表現を使用したデータ検証は MySQL に実装できますか?

DDD
DDDオリジナル
2024-11-17 17:29:02382ブラウズ

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。