正規表現は 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 サイトの他の関連記事を参照してください。