MySQL で正規表現を使用したデータ検証の強制
MySQL は、特に次のようなフィールドが存在する場合に、正規表現を利用してデータの整合性を確保できますか? 「電話番号」には特定の検証パラメータが必要ですか?
はい、MySQL は提供しますデータ検証に正規表現を利用する機能。 制限付きの CHECK 制約とは異なり、MySQL はデータの一貫性を強制するためにトリガーを使用します。トリガーを実装することで、正規表現の制約を指定して、データが事前に定義された基準に確実に適合するようにすることができます。
実際の例を次に示します。
次を使用して電話番号検証を強制するには正規表現 (たとえば、数値は次の形式である必要があります) 64-221221442):
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 ;
このトリガーを設定すると、指定された形式 (例: 64-22122 WRONG 1442) に準拠していない電話番号を挿入しようとするとエラーがトリガーされ、
MySQL ではこのような検証メカニズムが可能ですが、次のことが重要です。データ検証はデータベース層だけに依存すべきではないことに注意してください。包括的な検証メカニズムは、アプリケーション全体のさまざまなレベルで実装する必要があります。
以上がMySQL は正規表現を使用して電話番号を検証できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。