PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 13/04/2018 18:21:35

OGA
Membre

saisie d'attributs avec pré contrôle sur les valeurs

Bonjour
Je suis débutant sur Pagadmin4  et je voudrais sur un attribut (columns dans une table ) pouvoir dire au moment de sa définition que l'attribut est contrôlé sur son domaine de valeurs (exemple attribut PRIX DE VENTE < 1000 E) .merci pour votre aide .

Hors ligne

#2 14/04/2018 11:23:27

gleu
Administrateur

Re : saisie d'attributs avec pré contrôle sur les valeurs

Ça ressemble assez fortement à une contrainte CHECK.


Guillaume.

Hors ligne

#3 16/04/2018 09:13:47

OGA
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Merci pour le retour . Oui j'avais vu la fonction CHECK et j'ai voulu l'utiliser . Il faut saisir un nom pour le check exemple ck_Prix_fabrication ensuite définir le check et là j'ai indiqué Fabr_Pro.prix_fabrication < 1000 ...ensuite on visualise le code SQL généré voir ci-dessous :
et qd je veux sauvegarder il y'a un message d'erreur

ALTER TABLE public."FABR_PRO"
    ADD CONSTRAINT ck_prix_fabrication CHECK (Fabr_pro.prix_fabrication < 1000)
    NOT VALID;
ERREUR: entrée manquante de la clause FROM pour la table « fabr_pro »

Hors ligne

#4 16/04/2018 13:04:08

jmarsac
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Bonjour,
Si vous utilisez "FABR_PRO" comme nom de table, il faut utiliser la même valeur dans l'expression définissant la contrainte :

ALTER TABLE public."FABR_PRO"
    ADD CONSTRAINT ck_prix_fabrication CHECK ("FABR_PRO".prix_fabrication < 1000)

NB : il est vivement recommandé d'utiliser  des noms d'objets tout en  minuscules

Dernière modification par jmarsac (16/04/2018 13:04:41)

Hors ligne

#5 16/04/2018 15:55:22

OGA
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Bonjour

Merci, j'ai corrigé l'erreur de syntax ...Voici le nouveau code SQL généré ...mais toujours la même erreur

ALTER TABLE public."FABR_PRO"
    ADD CONSTRAINT ck_prix_fabrication CHECK ("FABR_PR0".prix_fabrication < 1000)
    NOT VALID;

J'ai passé dessus plusieurs heures ...et ça ne marche tjrs pas !   merci pour votre aide

Hors ligne

#6 16/04/2018 16:51:42

jmarsac
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Quel est le message d'erreur ?
Il me semble qu'il y a une erreur dans le nom de la table 0 au lieu de O

Hors ligne

#7 16/04/2018 20:52:48

OGA
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

C'est bon j'ai trouvé !
il faut absolument mentionner le nom complet de l'objet pour que la requête SQL soit valable comme par exemple
public.fabr_pro."Prix_Fabrication" <1000 ...et là  la contrainte est bien enregistrée sans l'arborescence

Voilà si ça peut servir à d'autres

Hors ligne

#8 17/04/2018 08:40:09

jmarsac
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Vous devriez regarder la doc sur SEARCH_PATH

Hors ligne

#9 17/04/2018 08:59:22

OGA
Membre

Re : saisie d'attributs avec pré contrôle sur les valeurs

Oui merci pour l'info ...j'a tout compris

Hors ligne

Pied de page des forums