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

SQL Firebird Discussion :

Relations avec 3 champs


Sujet :

SQL Firebird

  1. #1
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 49
    Points
    49
    Par défaut Relations avec 3 champs
    Bonjour,

    Voila j'ai une table visites avec 3 champs pour clé primaire ("JOUR","HEUREDEB","HEUREFIN"), une table CLIENTS avec comme clé primaire ("IDCLIENTS") et une table VISCLT qui a pour clé primaire les deux suivantes.

    Comment je dois faire pour créer les relations sous interbase entre la table VISITES et VISCLT ?

    J'ai essayé ça :
    ALTER TABLE VISCLT FOREIGN KEY ("jour","heuredeb","heurefin") references visites ("jour","heuredeb","heurefin")
    mais ça ne marche pas

    merci

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Si j'ai bien compris ta question, tu veux créer la table VISCL ayant pour clé primaire la somme des clés primaires des 2 tables auxquelles elle est liée (donc 1 + 3 = 4 colonnes). Et d'autre part, tu veux ajouter une contrainte d'intégrité référentielle sur 4 colonnes.

    Si c'est bien ça alors je te propose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    CREATE TABLE CLI (
        IDCLIENTS   INTEGER NOT NULL
    );
     
    ALTER TABLE CLI ADD CONSTRAINT PK_CLI PRIMARY KEY (IDCLIENTS);
     
    CREATE TABLE VISITES (
        JOUR INTEGER NOT NULL,
        HEUREDEB INTEGER NOT NULL,
        HEUREFIN INTEGER NOT NULL
    );
     
    ALTER TABLE VISITES ADD CONSTRAINT PK_VISITES PRIMARY KEY (JOUR, HEUREDEB, HEUREFIN);
     
    CREATE TABLE VISCL (
        IDCLIENTS INTEGER NOT NULL,
        JOUR INTEGER NOT NULL,
        HEUREDEB INTEGER NOT NULL,
        HEUREFIN INTEGER NOT NULL
    );
     
    ALTER TABLE VISCL
    ADD CONSTRAINT PK_VISCL PRIMARY KEY (IDCLIENTS, JOUR, HEUREDEB, HEUREFIN);
     
    ALTER TABLE VISCL
    ADD CONSTRAINT FK_CLI FOREIGN KEY (IDCLIENTS) REFERENCES CLI (IDCLIENTS);
     
    ALTER TABLE VISCL
    ADD CONSTRAINT FK_VISITES FOREIGN KEY (JOUR, HEUREDEB, HEUREFIN) REFERENCES VISITES (JOUR, HEUREDEB, HEUREFIN);
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  3. #3
    Membre du Club
    Inscrit en
    Mars 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 85
    Points : 49
    Points
    49
    Par défaut
    je te remerci c'est cool, j'avais des problemes sur ma syntaxe mais avec ton code c'est réglé.

    merci

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

Discussions similaires

  1. [AC-2010] relations avec 2 champs
    Par pascal159 dans le forum Access
    Réponses: 3
    Dernier message: 16/09/2014, 11h16
  2. Réponses: 8
    Dernier message: 25/10/2011, 10h18
  3. Réponses: 2
    Dernier message: 07/09/2010, 14h47
  4. valeur de champ actuel en relation avec l'enregistrement précédent
    Par NABIL74 dans le forum Bases de données
    Réponses: 10
    Dernier message: 10/12/2008, 18h57
  5. Réponses: 1
    Dernier message: 25/09/2006, 10h18

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