ホームページ >データベース >mysql チュートリアル >MySQL は電話番号などのデータを検証するために正規表現を使用できますか?

MySQL は電話番号などのデータを検証するために正規表現を使用できますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-17 06:52:03904ブラウズ

Can MySQL Use Regular Expressions to Validate Data, Like Phone Numbers?

正規表現は MySQL のデータを検証できますか?

データベース エントリの整合性を確保するには、データの有効性を強制することが重要です。そのような属性の 1 つである電話番号は、特定の形式に従う必要があります。 MySQL は正規表現を利用してそのような制約を強制できますか?

データ チェックに正規表現を使用する

はい、MySQL はデータ検証に正規表現 (regex) をサポートしています。 CHECK 制約とは異なり、MySQL ではトリガーを通じてデータ チェックを実装できます。

正規表現を使用して「phone」列のチェック制約を定義するには、次の SQL ステートメントを使用できます:

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

このトリガーは、電話番号が指定された形式に従っていることを検証します。ただし、MySQL には CHECK 制約が存在しますが、それらはデータ検証ではサポートされていません。

追加の考慮事項

MySQL はトリガーと正規表現を通じてデータ チェック機能を提供しますが、データ検証はデータ層だけに依存すべきではないことを認識することが重要です。システム全体のデータの整合性を確保するには、アプリケーションのさまざまなレベルで包括的なデータ検証を実装する必要があります。

以上がMySQL は電話番号などのデータを検証するために正規表現を使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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