Maison >base de données >tutoriel mysql >La validation des données à l'aide d'expressions régulières peut-elle être implémentée dans MySQL ?

La validation des données à l'aide d'expressions régulières peut-elle être implémentée dans MySQL ?

DDD
DDDoriginal
2024-11-17 17:29:02471parcourir

Can Data Validation Using Regular Expressions be Implemented in MySQL?

La validation des données à l'aide d'expressions régulières peut-elle être appliquée dans MySQL ?

La validation des données est cruciale pour garantir l'intégrité des données. Les expressions régulières (regex) offrent une flexibilité dans la définition des contraintes. MySQL peut-il exploiter les regex pour la validation des données ?

Oui, MySQL prend en charge les regex pour la validation des données. Notamment, il ne prend pas en charge les contraintes CHECK pour la validation des données. Au lieu de cela, des déclencheurs doivent être utilisés.

Par exemple, vous pouvez créer une contrainte de vérification pour une colonne de téléphone à l'aide d'un déclencheur :

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 si le numéro de téléphone entrant correspond au numéro spécifié. expression régulière. S'il ne correspond pas, il signale une erreur et définit un message d'erreur personnalisé.

INSERT INTO data VALUES ('+64-221221442'); -- should be OK
INSERT INTO data VALUES ('+64-22122 WRONG 1442'); -- will fail with the error: #1644 - Wroooong!!! 

Cependant, il n'est pas recommandé de s'appuyer uniquement sur MySQL pour la validation des données. Les données doivent être validées à plusieurs niveaux d'une application pour une intégrité optimale des données.

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