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!