Le Mercredi 11 D�cembre 2002 14:51, Ismael Touama a �crit :
> > Bonjour, a toute la liste
> >
> > Apr�s mysql, voici une question sur Postgresql: je suis en train de
> > cr�er des tables en ligne de commande pour apprendre les bases et je me
> > prend syst�matiquement une erreur pour cette table et je ne comprend
> > pas pourquoi.
> >
> > Car la requ�te fonctionne sans les contraintes CHECK. Je vous donne ma
> > requ�te ainsi que le message d'erreur en esp�rant qu'une bonne ame
> > charitable ayra la bont� de bien voiloir m'aider.  ;c))
> >
> > cabinet=# CREATE TABLE client (
> > cabinet(#   id_cli               INTEGER          NOT NULL,
> > cabinet(#   comp_cli             VARCHAR(25)      NOT NULL,
> > cabinet(#   rs_cli               VARCHAR(25)      NOT NULL,
> > cabinet(#   adresse_cli          VARCHAR(50),
> > cabinet(#   type_paiement        VARCHAR(10)      NOT NULL DEFAULT
> > 'virement',
> > cabinet(#   delai_paiement       INTEGER          NOT NULL,
> > cabinet(#   pourcent_ac          INTEGER          NOT NULL,
> > cabinet(#   periode_facture      INTEGER          NOT NULL,
> > cabinet(#  CONSTRAINT PK_client PRIMARY KEY (id_cli),
> > cabinet(#  CHECK (type_paiement IN ('cheque','virement') ),
> > cabinet(#  CHECK (pourcent_ac BETWEEN (0 AND 100) )
> > cabinet(# );
> > ERROR:  parser: parse error at or near ")"
>
> Salut Christophe, et toute la liste ;op
>
> J'ai trouv� �a sur le net :
>           CONSTRAINT Limite_ID
>           CHECK ( ID BETWEEN 10000 AND 19999 )
>
> Mais je suppose que tu as d�j� test�.
> T'as essay� aussi avec des double-quotes dans ton
> premier CHECK ?
> Euh... sinon cabinet c'est ton prompt lorsque tu es connect�
> � ton serveur de Base de Donn�es ? Huuuuuh  !

et tu avais presque trouv� : voici la bonne requ�te
CREATE TABLE client (
  id_cli               INTEGER          NOT NULL,
  comp_cli             VARCHAR(25)      NOT NULL,
  rs_cli               VARCHAR(25)      NOT NULL,
  adresse_cli          VARCHAR(50),
  type_paiement        VARCHAR(10)      NOT NULL DEFAULT 'virement',
  delai_paiement       INTEGER          NOT NULL,
  pourcent_ac          INTEGER          NOT NULL,
  periode_facture      INTEGER          NOT NULL,
 CONSTRAINT PK_client PRIMARY KEY (id_cli),
 CHECK (type_paiement IN ('cheque','virement') ),
 CHECK (pourcent_ac BETWEEN 0 AND 100 )
);

La diff�rence pas de parenth�se pout le between alors que oracle et 
interbase il les faut (du mois sur les exemples dont je dispose)

Non, c'est le non de la base et comme je suis un peu feignat, j'ai pris le 
premier mot de cabinet de conseil et pas ce � quoi tu as pens� ;c)))

Grand merci pour ton aide

-- 
La theorie, c'est quand on comprend tout mais que rien ne marche.
La pratique, c'est quand ca marche sans qu'on ne sache pourquoi.
Les ingenieurs rassemblent les deux:
     rien ne marche et ils ne savent pas pourquoi.       ULg
Christophe Josselin

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à