Vous n'êtes pas identifié(e).
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
Ça ressemble assez fortement à une contrainte CHECK.
Guillaume.
Hors ligne
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
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
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
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
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
Vous devriez regarder la doc sur SEARCH_PATH
Hors ligne
Oui merci pour l'info ...j'a tout compris
Hors ligne