{Oracle} 2 Clé primaire

Résolu
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. 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
    1. 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
      1. 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
        1. Merciii, j'ai dû mal m'exprimer, mais c'est la 2ème solution que je voulais et elle marche à merveille.
          0