{Oracle} 2 Clé primaire

Résolu
sangokudu92 Messages postés 166 Statut Membre -  
sangokudu92 Messages postés 166 Statut Membre -
Bonjour,

Je souhaiterais créer une association qui possède 2 clés primaires et qui sont en même temps clés étrangères.

ADHERENT (NoAdh, Nom_Adh)
Entrainement (NoEntnmt, JourEntnmt)
Participer (#NoAdh, #NoEntnmt)

Merci d'avance pour votre aide
--
Move-FM
Configuration: AMD PhenomII X4 955
ATI RADEON HD 4870 1Go
4Go DDR3
MAXTOR 500 Go

4 réponses

  1. sangokudu92 Messages postés 166 Statut Membre 7
     
    Merci beaucoup pour ta réponse.
    Par contre pour mettre 2 clés étrangères sa ne marche pas.
    Voila ce que j'ai fait:

    ALTER TABLE Participer ADD CONSTRAINT FOREIGN KEY (NoAdh, NoEntnmt) REFERENCES adherent (NoAdh), Entrainement (NoEntnmt);


    Et je sais qu'il manque quelque chose entre "ADD CONSTRAINT" et "FOREIGN KEY", mais je n'ai pas encore compris comment on doit faire.
    2
  2. fiu
     
    normal, il faut nommer ta contrainte!
    par contre, même si je suis plus trop au jus en Oracle moderne, je pense pas qu'une contrainte de clé étrangère puisse référencer 2 tables
    essaie ALTER TABLE Participer ADD CONSTRAINT participer_fk1 FOREIGN KEY (NoAdh, NoEntnmt) REFERENCES adherent (NoAdh), Entrainement (NoEntnmt); même si je pense que ca marche pas

    envoie alors
    ALTER TABLE Participer ADD CONSTRAINT participer_fk1 FOREIGN KEY (NoAdh) REFERENCES adherent (NoAdh); puis
    ALTER TABLE Participer ADD CONSTRAINT participer_fk2 FOREIGN KEY (NoEntnmt) REFERENCES Entrainement (NoEntnmt);
    1
  3. fiu
     
    Salut

    tu n'as pas deux clés primaires (on en a fouetté pour moins que ça) mais plutôt une clé primaire composée.
    dans ta déclaration de contrainte de clé primaire (celle du cours ou du manuel), il te suffit de remplacer le nom d'une colonne par les noms des colonnes qui composent ta clé primaire simplement séparées par des virgules (,)
    0
  4. sangokudu92 Messages postés 166 Statut Membre 7
     
    Merciii, j'ai dû mal m'exprimer, mais c'est la 2ème solution que je voulais et elle marche à merveille.
    0