IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Check sur une colonne de table "en cours"


Sujet :

MS SQL Server

  1. #1
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut [resolu]Check sur une colonne de table "en cours"
    Voilà, je crée une table dans laquelle je fais un check sur une colonne...

    Table Emprunts :
    date_emprunt
    agent
    cd
    date_retour

    en fait je fais un check pour vérifier que date_retour est supérieure à date_emprunt.

    Le message d'erreur est :
    La contrainte de colonne CHECK pour la colonne 'Date_retour' fait référence à une autre colonne, table 'Emprunts'.

    Voilà comment je fais ma création de table :
    CREATE TABLE Emprunts (
    Date_emprunt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    Num_cd INTEGER CONSTRAINT fkEmprunts1 REFERENCES Cd(Num_cd),
    Num_agt INTEGER CONSTRAINT fkEmprunts2 REFERENCES Agent (Num_agt),
    Date_retour TIMESTAMP CONSTRAINT ckDateEmprunt CHECK( Date_emprunt < Date_retour),
    PRIMARY Key (Date_emprunt, Num_cd, Num_agt))

    Je pensais pourtant que je pouvais faire un check de ce type ... ?

  2. #2
    En attente de confirmation mail
    Inscrit en
    Novembre 2002
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 51
    Points : 58
    Points
    58
    Par défaut Re: Check sur une colonne de table "en cours"
    Citation Envoyé par in2111
    Voilà, je crée une table dans laquelle je fais un check sur une colonne...

    Table Emprunts :
    date_emprunt
    agent
    cd
    date_retour

    en fait je fais un check pour vérifier que date_retour est supérieure à date_emprunt.

    Le message d'erreur est :
    La contrainte de colonne CHECK pour la colonne 'Date_retour' fait référence à une autre colonne, table 'Emprunts'.

    Voilà comment je fais ma création de table :
    CREATE TABLE Emprunts (
    Date_emprunt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    Num_cd INTEGER CONSTRAINT fkEmprunts1 REFERENCES Cd(Num_cd),
    Num_agt INTEGER CONSTRAINT fkEmprunts2 REFERENCES Agent (Num_agt),
    Date_retour TIMESTAMP CONSTRAINT ckDateEmprunt CHECK( Date_emprunt < Date_retour),
    PRIMARY Key (Date_emprunt, Num_cd, Num_agt))

    Je pensais pourtant que je pouvais faire un check de ce type ... ?
    Tu tentes un CHECK au niveau colonne, mais dans ton cas il faut la faire au niveau table, dixit l'aide :

    Il est également possible d'appliquer une seule contrainte CHECK à plusieurs colonnes en la créant au niveau de la table. Ainsi, vous pouvez recourir à une contrainte CHECK sur plusieurs colonnes pour confirmer que les lignes comportant la valeur USA dans leur colonne country possèdent également une valeur à deux caractères dans leur colonne state. La vérification de plusieurs conditions est donc effectuée de façon simultanée.

  3. #3
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    créer au niveau de la table ?

    Je vais voir ... je ne pensais pas que y'avait ce genre de contrainte

    D'accord, il suffisait de mettre une virgule avant le constraint ...

    Aller merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] Update avec un count sur une colonne de la meme table
    Par debdev dans le forum SAS Base
    Réponses: 5
    Dernier message: 28/01/2014, 16h46
  2. Maxlength sur une colonne d'une table trop petit
    Par jlm57 dans le forum ADO.NET
    Réponses: 2
    Dernier message: 06/03/2011, 10h29
  3. Random sur une colonne d'une table
    Par pepitoluna dans le forum Oracle
    Réponses: 0
    Dernier message: 04/03/2011, 14h37
  4. Réponses: 1
    Dernier message: 27/07/2009, 16h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo