Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 08/02/2012 13:50:51
- abenhamdine
- Membre
Contraintes CHECK sur regexp
Bonjour,
Est il possible dans pg de mettre en place des contraintes CHECK basée sur une expression régulière ?
C'est à dire que la contrainte serait violée si la valeur insérée ne satisfait pas à l'expression régulière ?
D'avance merci.
Cdlt, Arnaud.
Hors ligne
#2 08/02/2012 15:57:58
- cedric
- Membre
Re : Contraintes CHECK sur regexp
oui
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation
Hors ligne
#3 09/02/2012 11:35:00
- abenhamdine
- Membre
Re : Contraintes CHECK sur regexp
Bonjour,
Merci pour cette confirmation.
Après consultation de la doc, je ne trouve pas d'exemple d'une telle contrainte
J'ai trouvé sur la FAQ PG de developpez.com l'exemple suivant :
ALTER TABLE matable
ADD CONSTRAINT numerotel_check CHECK (numerotel ~ '^[0-9]{10,}$'::text);
Est la bonne façon de procéder ?
D'avance Merci.
oui
Hors ligne
#4 09/02/2012 12:48:03
- Marc Cousin
- Membre
Re : Contraintes CHECK sur regexp
Oui, c'est la bonne façon de procéder. Même si je ne vois pas bien l'intérêt du ::text, vu que '^[0-9]{10,}$' est déjà du texte.
L'autre façon, si il y a plusieurs numero de telephone dans la base, et que ce check risque de se trouver un peu partout, c'est de créer un domaine : http://docs.postgresql.fr/9.1/sql-createdomain.html
Un domaine, c'est un type + une contrainte CHECK. Et là, en plus, il y a un bel exemple avec une expression régulière en bas de page
Marc.
Hors ligne
#5 09/02/2012 14:59:07
- abenhamdine
- Membre
Re : Contraintes CHECK sur regexp
Merci !
Je n'avais pas pensé aux domaines...
C'est typiquement l'usage que je vais en faire.
Encore merci et bravo pour la qualité des réponses de ce forum.
Cdlt, Arnaud.
Hors ligne
Pages : 1