2015-12-15 3 views
0

dans mysql j'essaie de vérifier un email valide mais je ne sais pas savoir utiliser une regex avec contrainte je ne veux pas utiliser TRIGGER c'est possible ??!sql regex vérifier la contrainte

+2

MySQL ne supporte pas la contrainte 'CHECK' donc IMHO il ne semble pas possible de le faire sans trigger. – ozy

+0

Essayez-vous de le faire en MySQL ou PHP? –

+0

Vous essayez de vérifier lors de la sélection ou de l'insertion/de la mise à jour? Vous pouvez vérifier le côté serveur pour l'insertion/la mise à jour. Vous pouvez sélectionner une clause regex dans where. – chris85

Répondre

0

En MySql, vous pouvez l'utiliser pour e-mail valide ou non RegEx pour trouver le

invalide
select email from your_table where email 
     REGEXP '^[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}$'; 

ou pour ORACLE

SELECT email 
FROM your_table 
WHERE REGEXP_LIKE (email, '[A-Z0-9._%-][email protected][A-Z0-9._%-]+\.[A-Z]{2,4}'); 

mais rappelez-vous est pas une solution absolue pour cela, vous pourriez trouver utile Ce message SO Using a regular expression to validate an email address

+0

non je ne suis pas allé sélectionner de la base de données je n'ajouterais pas une contrainte quand je suis allé insérer des valeurs dans ma table –

+0

Pour cela vous devez créer un trigger, (voir comment créer un trigger) et appliquer l'expression rationnelle dans http://stackoverflow.com/questions/16005283/is-it-possible-to-enforce-data-checking-in-mysql-using-regular-expression – scaisEdge

+0

merci pour votre aide, je suis débutant et je cherche une méthode simple –