Maison  >  Article  >  base de données  >  MySQL peut-il utiliser des expressions régulières pour valider des données, comme des numéros de téléphone ?

MySQL peut-il utiliser des expressions régulières pour valider des données, comme des numéros de téléphone ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 06:52:03843parcourir

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

Les expressions régulières peuvent-elles valider les données dans MySQL ?

Le respect de la validité des données est crucial pour garantir l'intégrité des entrées de la base de données. L’un de ces attributs, le numéro de téléphone, nécessite le respect de formats spécifiques. MySQL peut-il utiliser des expressions régulières pour appliquer de telles contraintes ?

Utiliser des expressions régulières pour la vérification des données

Oui, MySQL prend en charge les expressions régulières (regex) pour la validation des données. Contrairement aux contraintes CHECK, MySQL vous permet d'implémenter des vérifications de données via des déclencheurs.

Pour définir une contrainte de vérification pour la colonne "téléphone" à l'aide de regex, l'instruction SQL suivante peut être utilisée :

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

Ce déclencheur vérifie que les numéros de téléphone respectent le format spécifié. Cependant, malgré l'existence de contraintes CHECK dans MySQL, elles ne sont pas prises en charge pour la validation des données.

Considérations supplémentaires

Bien que MySQL offre des capacités de vérification des données via des déclencheurs et des expressions régulières, il est Il est crucial de reconnaître que la validation des données ne doit pas reposer uniquement sur la couche de données. Une validation complète des données doit être mise en œuvre à différents niveaux de l'application pour garantir l'intégrité des données dans tout le système.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn