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 :

[ FB 1.5 ] jointure avec clé composée de 2 colonnes


Sujet :

SQL Firebird

  1. #1
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 930
    Points : 1 959
    Points
    1 959
    Par défaut [ FB 1.5 ] jointure avec clé composée de 2 colonnes
    Bonjour,

    j'ai deux tables :

    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
     
    la première :
    CREATE TABLE ENTFACT (
        ID                     BIGINT NOT NULL,
        EF_NUMPOSTE            VARCHAR(3),
        EF_DATEFACTURE         DATE,
        EF_HEUREFACTURE        TIME,
        EF_ETAT                CHAR(1),
        EF_CODECLIENT          VARCHAR(15),
    );
     
    ALTER TABLE ENTFACT ADD PRIMARY KEY (ID);
     
    et la seconde :
    CREATE TABLE LIGFACT (
        ID                    BIGINT NOT NULL,
        LF_NUMLIGNE           INTEGER NOT NULL,
        LF_TYPELIGNE          SMALLINT,
        LF_CODECONSO          VARCHAR(15),
        LF_LIBELLECONSO       VARCHAR(80),
        LF_QUANTITE           INTEGER,
        ...
    );
    ALTER TABLE LIGFACT ADD CONSTRAINT PK_LIGFACT PRIMARY KEY (ID, LF_NUMLIGNE);
    Est il possible de créer une jointure avec les deux clés de ces deux tables ? comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    alter table ENTFACT
    add constraint FK_ENTFACT_1
    foreign key (ID)
    references LIGFACT(ID)
    on delete CASCADE
    on update CASCADE
    Il m'affiche l'erreur suivante : "could not find UNIQUE INDEX with specified columns"
    C'est pas possible de construire la jointure sur simplement la 1ère colonne de la clé de la 2nd table ?

  2. #2
    Membre averti

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 379
    Points : 376
    Points
    376
    Par défaut
    les champs de références doivent toujours être avec une contrainte not null et une autre pour la clé primaire.

    une relation à deux colonnes ce fait normalement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table table_1 foreign key (champ1,champ2) references table_2(champ1,champ2)
    donc ici, table_2.champ1 & champ2 doivent_être not null et dans une clé primaire (de préférence, la contrainte unique est en principe possible)

  3. #3
    Membre chevronné
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    930
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 930
    Points : 1 959
    Points
    1 959
    Par défaut
    Merci pour ta réponse mais je comprends pas vraiment ce que tu veux dire...
    Mes champs table_2.champ1 & champ2 sont bien not null
    et ce que je veux faire c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table table_1 foreign key (champ1) references table_2(champ1)
    Mais ça marche pas, je me demande si c'est vraiment possible !

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

Discussions similaires

  1. Jointure via table avec clés composées
    Par pasqua80000 dans le forum Débuter
    Réponses: 1
    Dernier message: 01/07/2015, 22h22
  2. Réponses: 1
    Dernier message: 18/07/2007, 11h58
  3. jointure avec clé composée de 2 colonnes
    Par free07 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 29/10/2005, 07h07
  4. [Débutante] Création d'une image avec un composant
    Par gwendo dans le forum AWT/Swing
    Réponses: 9
    Dernier message: 09/07/2004, 09h58
  5. [SAGE]Jointures avec SGBD
    Par mat.M dans le forum Autres SGBD
    Réponses: 4
    Dernier message: 09/10/2003, 12h23

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