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

 Oracle Discussion :

creer une table. cle etrangere


Sujet :

Oracle

  1. #1
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut creer une table. cle etrangere
    Bonjour,
    je ss debutante avec oracle. je cree les tables graphiquement pour faciliter les choses pr moi. mais voila j'ai la table client et la table note qui contient le code client(qui est la cle primaire de la table client). la creation de la table client a bien marche car elle ne contient pas de cle etrangere mais celle de la table note je recoit tjrs message d'erreur ORA02270 qui dit pas de correspondance de cle primaire ou unique pour cette liste de colone.
    et voila le code qu'on aura:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    create table ''sys''.''note'' (''note'' number(2) not null, ''code-client'' number(12) not null,''date''varchar2(10) not null,
    constraint ''note'' primary key (''note'',''code-client'',''date''),
    constrait ''code-client'' foreign key (''code-client'')
    references ''sys''.''client''(''code-client''))
    pouvez vous m'indiquer le probleme. merci

  2. #2
    Membre confirmé

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 507
    Points : 503
    Points
    503
    Par défaut
    Bonjour.
    Vos contraintes doivent avoir un nom spécifique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    constraint pk_note primary key (note,code-client,date),
    constraint fk_code-client foreign key (code-client)
    references sys.client(code-client))
    Evitez d'appeler une colonne "date".

  3. #3
    Membre actif

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2008
    Messages
    109
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

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

    Informations forums :
    Inscription : Décembre 2008
    Messages : 109
    Points : 204
    Points
    204
    Par défaut
    salut
    je vois que tu travailles sous le schema de sys je te conseille de creer un autre schema outre que sys et de travailler avec
    merci

  4. #4
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par GoLDoZ Voir le message
    Bonjour.
    Vos contraintes doivent avoir un nom spécifique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    constraint pk_note primary key (note,code-client,date),
    constraint fk_code-client foreign key (code-client)
    references sys.client(code-client))
    Evitez d'appeler une colonne "date".
    bonjour, merci pr votre reponse j'essairai et je vous renderai la reponse.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par umarus Voir le message
    salut
    je vois que tu travailles sous le schema de sys je te conseille de creer un autre schema outre que sys et de travailler avec
    merci
    bonjour, oui j'utilise sys. le quel je dois utiliser? et pourquoi? j'ai deja utilise systeme et j'ai trouve le meme probleme. j'attends votre reponse.
    merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par GoLDoZ Voir le message
    Bonjour.
    Vos contraintes doivent avoir un nom spécifique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    constraint pk_note primary key (note,code-client,date),
    constraint fk_code-client foreign key (code-client)
    references sys.client(code-client))
    Evitez d'appeler une colonne "date".
    la solution n'a rien donner. toujours le meme probleme. mon dieu que faire.

  7. #7
    Membre habitué
    Inscrit en
    Février 2009
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 127
    Points : 146
    Points
    146
    Par défaut
    Bonjour,

    Pour éviter d'utiliser sys ou system le mieux est de créer un nouveau schéma (utilisateur).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE USER nom_user IDENTIFIED BY pwd;
    Après il faut lui donner des privilèges.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GRANT CONNECT, RESOURCE TO nom_user;
    GRANT CREATE TABLE, CREATE INDEX, SELECT ANY TABLE TO nom_user;
    Et comme ça t'a été conseillé évite de donner un nom de colonne date. Choisit plutôt dt_nom_colonne par exemple.

    As tu bien table client avec une colonne code_client ?

    Sylvain
    Sylvain


  8. #8
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Une clé étrangère doit référencer une clé primaire.
    Est-ce que la table client a bien pour clé primaire code-client ?
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  9. #9
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    merci pour vos reponse mais rien n'a marche. un prof ma conseille de changer la version. alors j installer la 10g mais je ne trouve plus consol entreprise management et c avec ce composant que je cree mes table graphiquement. comment utiliser la creation graphique avec 10h. et comment me connecter a ma base de donnees.

  10. #10
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Bonjour,

    tu peux utiliser sqldeveloper aussi



    Voici un exemple sur lequel tu peux t'inspirer



    d'abord créer la table client
    apres tu crées la table note

    Code sql : 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
     
    CREATE TABLE client
                 (
                              client_id     NUMBER NOT NULL      ,
                              client_name   VARCHAR2(40) NOT NULL,
                              client_f_name VARCHAR2(40) NOT NULL,
                              CONSTRAINT PK_client PRIMARY KEY (client_id) USING INDEX
                 );
     
    CREATE TABLE note
                 (
                              note        NUMBER(2)     NOT NULL                                             ,
                              code_client NUMBER(12) NOT NULL                                        ,
                              date_note DATE NOT NULL                                                ,
                              CONSTRAINT pk_note PRIMARY KEY (note,code_client,date_note) USING INDEX,
                              CONSTRAINT Fk_client FOREIGN KEY (code_client) REFERENCES client(client_id)
                 )
                 /

    apres tu adaptes a ton environnement

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  11. #11
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par fatsora Voir le message
    Bonjour,

    tu peux utiliser sqldeveloper aussi



    Voici un exemple sur lequel tu peux t'inspirer



    d'abord créer la table client
    apres tu crées la table note

    Code sql : 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
     
    CREATE TABLE client
                 (
                              client_id     NUMBER NOT NULL      ,
                              client_name   VARCHAR2(40) NOT NULL,
                              client_f_name VARCHAR2(40) NOT NULL,
                              CONSTRAINT PK_client PRIMARY KEY (client_id) USING INDEX
                 );
     
    CREATE TABLE note
                 (
                              note        NUMBER(2)     NOT NULL                                             ,
                              code_client NUMBER(12) NOT NULL                                        ,
                              date_note DATE NOT NULL                                                ,
                              CONSTRAINT pk_note PRIMARY KEY (note,code_client,date_note) USING INDEX,
                              CONSTRAINT Fk_client FOREIGN KEY (code_client) REFERENCES client(client_id)
                 )
                 /

    apres tu adaptes a ton environnement
    ok merci je voie que tu as donne un nom different de la cle primaire de client (client.id)ds la table note(code-client). j'essayerai sa.
    mais stp peux tu me dire comment travailler graphiquement avec oracle 10g car je ne trouve pas le composant consol entreprise management

  12. #12
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    en plus avec 10g j sql plus c tt

  13. #13
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    Tu as SQLDEVELOPER a telecharger

    tu as pour OEM

    http://jaouad.developpez.com/oem/

    mais pour bien apprendre le sql ,sqldeveloper et sqlplus c'est mieux

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

  14. #14
    Nouveau membre du Club
    Inscrit en
    Février 2009
    Messages
    136
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 136
    Points : 28
    Points
    28
    Par défaut
    merci je viens de telecharger sql developer, c la 1ere fois que je travail avec. je vais voir ce que je peux faire. je croie qu'il faut commencer par une connexion avec ma bd qui est cree avec oracle? c sa?

  15. #15
    Membre expérimenté Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Points : 1 332
    Points
    1 332
    Par défaut
    C'est bien ca !

    asktom.oracle.com tahiti.oracle.com otn.oracle.com

    Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.


    phrase chinoise issue du Huainanzi

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

Discussions similaires

  1. Creer une table a partir d'un code java
    Par steph60 dans le forum JDBC
    Réponses: 1
    Dernier message: 22/09/2006, 14h17
  2. creer une table avec 2 clés
    Par 18Marie dans le forum Requêtes
    Réponses: 4
    Dernier message: 11/08/2006, 19h02
  3. [MySQL] creer une table SQL
    Par orasia dans le forum Langage SQL
    Réponses: 4
    Dernier message: 29/04/2006, 12h21
  4. creer une table
    Par kengchristine dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/01/2006, 09h35
  5. [postgresql]creer une table avec plusieurs clés primaire??
    Par perlgirl dans le forum Langage SQL
    Réponses: 2
    Dernier message: 09/11/2004, 18h24

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