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

 MySQL Discussion :

Problème de création d'association(table) sous MySQL


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2007
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2007
    Messages : 78
    Par défaut Problème de création d'association(table) sous MySQL
    Bonjour à tous,

    J'ai deux table et une association :

    [table1]0,n--------(asso)--------0,n[table2]

    Le modèle logique de cette structure est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    table1(id_table1, data1, ...);
    table2(id_table2, data2, ...);
    asso(#id_table1, #id_table2,);
    Et enfin, voici mon script de création des tables :

    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
     
    CREATE TABLE table1(
        id_table1 INT NOT NULL,
        data1 VARCHAR(50),
        CONSTRAINT pk_table1 PRIMARY KEY (id_table1));
     
    CREATE TABLE table2(
        id_table2 INT NOT NULL,
        data2 VARCHAR(50),
        CONSTRAINT pk_table2 PRIMARY KEY (id_table2));
     
    CREATE TABLE asso(
        id_table1 INT NOT NULL,
        id_table2 INT NOT NULL,
        CONSTRAINT pk_asso PRIMARY KEY (id_table1,id_table2),
        CONSTRAINT fk_asso1 FOREIGN KEY (id_table1)
            REFERENCES table1(id_table1),
        CONSTRAINT fk_asso2 FOREIGN KEY (id_table2)
            REFERENCES table2(id_table2));
    Lorsque j'exécute ce script sous MySQL, tout ce passe bien, je n'ai pas d'erreur. Par contre, lorsque je consulte la structure de ma table asso, je constate que ma première clé étrangère (fk_asso1) n'apparais pas. Et lorsque je la rajoute avec l'assistant de MySQL, ça fonctionne mais il m'affiche un message disant : "La colonne `id_table1` ne devrait pas faire partie à la fois d'une clé primaire et d'une clé index".

    Comment je peut faire pour que mon script fonctionne de manière à ce que toute mes clé étrangère apparaissent? Ou sinon, comment doit-je procédé pour créer mon association?

    Merci d'avance.

  2. #2
    Membre chevronné Avatar de mptijr
    Profil pro
    Étudiant
    Inscrit en
    Juin 2007
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2007
    Messages : 408
    Par défaut
    je ne vois pas d'erreur dans ton script.

    mais essaie de renommer les deux clés de ta table asso qui porte les mêmes noms que celles de table1 et table2.

    essaie ceci
    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
     
    CREATE TABLE table1(
        id_table1 INT NOT NULL,
        data1 VARCHAR(50),
        CONSTRAINT pk_table1 PRIMARY KEY (id_table1));
     
    CREATE TABLE table2(
        id_table2 INT NOT NULL,
        data2 VARCHAR(50),
        CONSTRAINT pk_table2 PRIMARY KEY (id_table2));
     
    CREATE TABLE asso(
        id_asso_table1 INT NOT NULL,
        id_asso_table2 INT NOT NULL,
        CONSTRAINT pk_asso PRIMARY KEY (id_table1,id_table2),
        CONSTRAINT fk_asso1 FOREIGN KEY (id_asso_table1)
            REFERENCES table1(id_table1),
        CONSTRAINT fk_asso2 FOREIGN KEY (id_asso_table2)
            REFERENCES table2(id_table2));
    je ne voie sincèrement pas de problème dans ton code.

Discussions similaires

  1. Erreur création de table sous mysql 5.5
    Par pelloq1 dans le forum Requêtes
    Réponses: 12
    Dernier message: 28/10/2011, 20h46
  2. Aide sur la création d'une bdd sous MySQL
    Par Shellai-93 dans le forum Débuter
    Réponses: 20
    Dernier message: 18/08/2006, 11h15
  3. Impossible d'importer un fichier csv dans une table sous MySQL
    Par manue85 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 20/04/2006, 12h06
  4. trigger createur de table sous mysql
    Par lours85 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 20/02/2006, 11h53
  5. Problème de création de table sous MySql
    Par ducamba dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/06/2003, 09h59

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