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 :

Erreur 1005 : quel est le problème ?


Sujet :

MySQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Erreur 1005 : quel est le problème ?
    Bonjour,

    Je cherche à créer 3 tables dans ma base de données avec le code SQL suivant :
    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
    23
    24
    25
    26
    27
    28
    /*Liste des plats :*/
    CREATE TABLE Alx_Plats
    (idPlat INT(10) PRIMARY KEY,
    nomPlat VARCHAR(100),
    tpsPrep INT(3),
    tpsCuis INT(3),
    tpsRepos INT(5),
    tpsTotal INT(5),
    origine VARCHAR(50),
    photo VARCHAR(1000));
     
    /*Liste des ingrédients :*/
    CREATE TABLE Alx_Ingredients
    (idPlat INT(10),
    idIngr INT(10),
    nomIngr VARCHAR(100),
    quantite DECIMAL(5,1),
    unite VARCHAR(20),
    PRIMARY KEY (idPlat, nomIngr),
    FOREIGN KEY (idPlat) REFERENCES Alx_Plats(idPlat));
     
    /*Prix des ingrédients :*/
    CREATE TABLE Alx_Prix
    (idIngr INT(10) PRIMARY KEY,
    prixSupermarche DECIMAL(5,2),
    prixBio DECIMAL(5,2),
    prixMariacher DECIMAL(5,2),
    FOREIGN KEY (idIngr) REFERENCES Alx_Ingredients(idIngr));
    Les 2 premières tables sont bien créées, mais pour la dernière j'ai une erreur :
    ERROR 1005 (HY000): Can't create table '##NOM DE LA BASE MASQUE##.Alx_Prix' (errno: 150)
    J'ai lu que ça viendrait d'un problème avec la clé étrangère... Pourtant je ne vois pas où est le problème... Pouvez-vous m'aider SVP ?

    Merci d'avance !!

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    bonjour,

    la clef primaire de votre table ingrédient est : idPlat, nomIng.

    Ne serai-ce pas plutot les 2 id ?


    Sinon vous avez un probleme de modélisation. Vous devriez passer par un MCD afin d'éviter ceci.


    MCD :
    Plat-0,n-------Contient----------0,n-Ingredient

    Quand on passe au mpd : (en gras les clef primaire, # clef étrangère)
    Plat(idPla, nomPlat, ....)
    Ingredient(idIng, nomIng, ...)
    R_PLA_ING(#idPlat, #idIng, quatite, unite)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre réponse.

    J'ai réécrit mon script ainsi :
    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
    23
    24
    25
    26
    27
    28
    /*Liste des plats :*/
    CREATE TABLE Alx_Plats
    (idPlat INT(10) PRIMARY KEY,
    nomPlat VARCHAR(100),
    tpsPrep INT(3),
    tpsCuis INT(3),
    tpsRepos INT(5),
    tpsTotal INT(5),
    origine VARCHAR(50),
    photo VARCHAR(1000));
     
    /*Liste des ingrédients :*/
    CREATE TABLE Alx_Ingredients
    (idIngr INT(10) PRIMARY KEY,
    nomIngr VARCHAR(100),
    quantite DECIMAL(5,1),
    unite VARCHAR(20),
    prixSupermarche DECIMAL(5,2),
    prixBio DECIMAL(5,2),
    prixMariacher DECIMAL(5,2));
     
    /*Contenu d'une recette*/
    CREATE TABLE Alx_PlatIngrs
    (idPlat INT(10),
    idIngr INT(10),
    PRIMARY KEY(idPlat, idIngr),
    FOREIGN KEY(idPlat) REFERENCES Alx_Plats(idPlat),
    FOREIGN KEY(idIngr) REFERENCES Alx_Ingr(idPlat));
    Mais j'ai toujours la même erreur lors de la création de la dernière table. Je ne comprend pas comment associé un Plat à plusieurs Ingrédient si cela ne marche pas. Pouvez-vous m'aider ?

    J'ai essayé des logiciels de modélisation (entité/association) mais je n'en ai pas trouvé que j'ai compris... (open modelsphere notamment).

  4. #4
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE TABLE Alx_Ingredients
    (idIngr INT(10) PRIMARY KEY,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOREIGN KEY(idIngr) REFERENCES Alx_Ingr(idPlat)
    Le REFERENCES doit référencer un nom de table(colonne) existant.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 12
    Points : 12
    Points
    12
    Par défaut Résolu !
    La boulette... Merci beaucoup ! Ça marche à présent

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

Discussions similaires

  1. [XL-2007] une formule dans une macro ne fonctionne pas je ne sais pas quel est le problème
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/11/2010, 12h59
  2. requête fausse : quel est le problème ?
    Par laurentSc dans le forum Langage SQL
    Réponses: 1
    Dernier message: 04/06/2009, 14h26
  3. Quel est le problème avec ce programmateur ?
    Par mohfa2001 dans le forum Langage
    Réponses: 0
    Dernier message: 01/12/2008, 02h01
  4. [AJAX] Quel est ce problème
    Par xcelent88 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/07/2007, 16h09
  5. Quel est le problème dans ce code ?
    Par Luther13 dans le forum C
    Réponses: 12
    Dernier message: 26/08/2003, 16h09

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