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

Langage SQL Discussion :

[Oracle8] clé étrangère


Sujet :

Langage SQL

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Points : 68
    Points
    68
    Par défaut [Oracle8] clé étrangère
    bonsoir à tous,j'ai un petit probleme pour définir ma clé étrangère.j'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    create table TABLE1 (
    MATRICULE number(5) not null,
    SECTIO VARCHAR2(1) not null,
    MODULE1 NUMBER(5) not null,
    MODULE2 NUMBER(5) not null,
    MODULE3 NUMBER(5) not null,
    MODULE4 NUMBER(5) not null,
    constraint PK primary key (MATRICULE))
     
    create table TABLE2 (MATRICULE number(5) not null,
    AGE number(5) not null,
    constraint PK primary key (MATRICULE))
    si je veux ajouter une clé étrangère à la table TABLE2 qui référence au mat de TABLE1,dans ce cas j'ai pas de probleme,(j'ajoute dans la déclaration de la création de la table ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FOREIGN KEY (matricule) REFERENCES TABLE1 (matricule),)
    mais si la clé primaire de table1 été (matricule,sectio) au lieu de (matricule)et je veux ajouter une clé étrangere à la table TABLE2 qui référence au mat de TABLE2,ça donne erreur que dois je écrire svp??

  2. #2
    Expert éminent
    Avatar de Swoög
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Points : 8 339
    Points
    8 339
    Par défaut

  3. #3
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Citation Envoyé par naazih
    mais si la clé primaire de table1 été (matricule,sectio) au lieu de (matricule)et je veux ajouter une clé étrangere à la table TABLE2 qui référence au mat de TABLE2,ça donne erreur que dois je écrire svp??
    Tu ne peux pas, une clé étrangère référence une clé primaire, pas n'importe quoi ; d'ailleurs si ton matricule doit servir de clé étrangère alors que la seule clé primaire dans laquelle il apparaît est (Matricule, Section), c'est que la conception de la base de données est mauvaise !

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2004
    Messages
    150
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 150
    Points : 121
    Points
    121
    Par défaut
    Citation Envoyé par naazih
    mais si la clé primaire de table1 été (matricule,sectio) au lieu de (matricule)et je veux ajouter une clé étrangere à la table TABLE2 qui référence au mat de TABLE2,ça donne erreur que dois je écrire svp??
    Dans ce cas, les champs matricule et sectio doivent être les foreign keys dans la table2 donc ces deux champs doivent être dans les deux table.

    En effet, tu pourrais avoir deux matricules pareils (ce qui n'est pas logique ici, mais bon) et ces deux matricules seraient différenciés par la valeur dans sectio. Ce qui fait que si tu n'as que matricule dans la table2, les deux matricules mentionnés ne seraient pas différenciés

    J'espère que ça t'as éclairé un peu...

Discussions similaires

  1. Une erreur 233 de ms sql server
    Par Hokage dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 05/10/2009, 18h40
  2. Erreur 233 sous sql server
    Par brajae85 dans le forum Oracle
    Réponses: 3
    Dernier message: 18/05/2009, 17h12
  3. Réponses: 2
    Dernier message: 05/10/2004, 23h43

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