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