Vous n'êtes pas identifié(e).
Pages : 1
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
oui
Cédric Villemain +33 (0)6 20 30 22 52
http://2ndQuadrant.fr/
PostgreSQL: Support 24x7 - Développement, Expertise et Formation
Hors ligne
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
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
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