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 Oracle Discussion :

Une partie de la Clé Primaire est une clé étrangère [10g]


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    USTHB, Alger
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : USTHB, Alger
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Par défaut Une partie de la Clé Primaire est une clé étrangère
    Bonsoir à tous,
    Je suis extrêmement débutant :p et j'ai besoin de votre aide
    pour la création des tables des relations suivantes:

    Agence (num-A, nom_A, Adr-A)
    Client (Num-C, Nom-C, Adr-C)
    Compte(Num-cpt ,Num-A ,Num-c, Solde)

    Comment déclarer une contrainte dans la table Compte pour "Num-c" qui est une partie de la clé primaire de Client
    J'ai crée les 02 premières... Mais pas la 3ème.
    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
    CREATE TABLE Agence(    num_agence NUMBER (10) NOT NULL,
        nom_agence VARCHAR (20) DEFAULT NULL,
        adr_agence VARCHAR (20) DEFAULT NULL,
        CONSTRAINTS pk_Agence PRIMARY KEY (num_agence)
    );
     
    CREATE TABLE Client(
        num_client NUMBER (6) NOT NULL,
        nom_client VARCHAR (20) NOT NULL,
        adr_client VARCHAR (20) DEFAULT NULL,
        CONSTRAINTS pk_Client PRIMARY KEY (num_client,nom_client)
    );
     
    CREATE TABLE Compte(
        num_compte         NUMBER (10)     NOT NULL,
        num_agence         NUMBER (10)     NOT NULL,
        num_client         NUMBER (6)         NOT NULL,
        solde             NUMBER (10,3)     DEFAULT NULL,
        CONSTRAINT pk_Compte PRIMARY KEY (num_compte,num_agence,num_client),
        CONSTRAINT fk_Compte_Agence FOREIGN KEY (num_agence) REFERENCES Agence (num_agence),
        CONSTRAINT fk_Compte_num_client FOREIGN KEY (num_client) REFERENCES Client(num_client)                  #à ce niveau
    );
    Merci!

  2. #2
    Membre expérimenté
    Avatar de diablo-dz
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2014
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 75
    Par défaut
    Bonsoir

    1-tu peux donner erreur que tu reçoive
    2- Pour t'as met nom_client comme clé primaire ? enlève la
    3-recreer la table client sans définir le champs ( nom_client ) comme clé primaire
    essaye avec ça :
    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
    CREATE TABLE Client(
        num_client NUMBER (6) NOT NULL,
        nom_client VARCHAR (20) NOT NULL,
        adr_client VARCHAR (20) DEFAULT NULL,
        CONSTRAINTS pk_Client PRIMARY KEY (num_client)
    );
     
    CREATE TABLE Compte(
        num_compte         NUMBER (10)     NOT NULL,
        num_agence         NUMBER (10)     NOT NULL,
        num_client         NUMBER (6)         NOT NULL,
        solde             NUMBER (10,3)     DEFAULT NULL,
        CONSTRAINT pk_Compte PRIMARY KEY (num_compte,num_agence,num_client),
        CONSTRAINT fk_Compte_Agence FOREIGN KEY (num_agence) REFERENCES Agence (num_agence),
        CONSTRAINT fk_Compte_num_client FOREIGN KEY (num_client) REFERENCES Client(num_client)              
    );
    ou tu peu crée ta table puis ajouter la contrainte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ALTER TABLE Compte  ADD CONSTRAINT FK_Compte_num_client FOREIGN KEY (num_client) REFERENCES client (Inum_client);
    A+

  3. #3
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    Foreign Key Constraints.
    Foreign keys may be defined as multiple columns. However, a composite foreign key must reference a composite primary or unique key with the same number of columns and the same data types.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    USTHB, Alger
    Inscrit en
    Juin 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Algérie

    Informations professionnelles :
    Activité : USTHB, Alger
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 2
    Par défaut
    Bonjour,
    Merci à tous pour votre aide.
    Malik, j'ai voulu respecter l'ennoncé de l'exercice (assertion ou je ne sais quoi exactement...), mais bon il est préférable d'utiliser votre solution.
    Merci encore!

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 16/11/2010, 16h58
  2. Réponses: 1
    Dernier message: 12/05/2009, 11h05
  3. Réponses: 3
    Dernier message: 08/09/2007, 11h10
  4. Réponses: 3
    Dernier message: 31/10/2006, 12h20

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