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

Requêtes MySQL Discussion :

ErrNO 150 FOREIGN KEY - tables INNODB - mêmes types


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut ErrNO 150 FOREIGN KEY - tables INNODB - mêmes types
    Bonjour,

    Je rencontre un problème à la création d'une nouvelle table :
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    mysql> SHOW DATABASES;
    +--------------------+
    | Database           |
    +--------------------+
    | bdd_cuisine        |
    +--------------------+
    2 rows in set (0.00 sec)
     
    mysql> SHOW TABLES;
    +-----------------------+
    | Tables_in_bdd_cuisine |
    +-----------------------+
    | client                |
    | plats                 |
    +-----------------------+
    2 rows in set (0.00 sec)
     
    mysql> CREATE TABLE bdd_cuisine.commandes (id INT(11) NOT NULL AUTO_INCREMENT,id_client INT(11) NOT NULL, id_plat INT(11) NOT NULL,
     qte INT(11) NOT NULL, PRIMARY KEY(id), FOREIGN KEY(id_client) REFERENCES bdd_cuisine.client, FOREIGN KEY (id_plat) REFERENCES bdd_cuisine.plats)
    ENGINE = INNODB;
     
    ERROR 1005 (HY000): Can't create table 'bdd_cuisine.commandes' (errno: 150)
     
    mysql> SHOW COLUMNS FROM client;
    +------------------+--------------+------+-----+---------+----------------+
    | Field            | Type         | Null | Key | Default | Extra          |
    +------------------+--------------+------+-----+---------+----------------+
    | id               | int(11)      | NO   | PRI | NULL    | auto_increment |
    | nom              | varchar(25)  | NO   |     | NULL    |                |
    | prenom           | varchar(15)  | NO   |     | NULL    |                |
    | adresse          | varchar(100) | NO   |     | NULL    |                |
    | ville            | varchar(30)  | NO   |     | NULL    |                |
    | mail             | varchar(70)  | NO   | UNI | NULL    |                |
    | tel1             | varchar(10)  | NO   |     | NULL    |                |
    | tel2             | varchar(10)  | NO   |     | NULL    |                |
    | date_inscription | datetime     | NO   |     | NULL    |                |
    +------------------+--------------+------+-----+---------+----------------+
    9 rows in set (0.00 sec)
     
    mysql> SHOW COLUMNS FROM plats;
    +---------------+--------------+------+-----+---------+----------------+
    | Field         | Type         | Null | Key | Default | Extra          |
    +---------------+--------------+------+-----+---------+----------------+
    | id            | int(11)      | NO   | PRI | NULL    | auto_increment |
    | designation   | varchar(60)  | NO   | UNI | NULL    |                |
    | prix_u        | decimal(8,2) | NO   |     | NULL    |                |
    | comments      | varchar(500) | YES  |     | NULL    |                |
    | date_creation | datetime     | NO   |     | NULL    |                |
    +---------------+--------------+------+-----+---------+----------------+
    Donc l'erreur est : "ERROR 1005 (HY000): Can't create table 'bdd_cuisine.commandes' (errno: 150)"
    Je me suis renseigné sur les forums et il est dit par qi130 ici que
    Il faut un index sur la colonne source (dans fiche_stage) et un autre sur la colonne cible (dans eleve_stage) s'il n'existe pas déjà.
    Les 2 tables doivent être en INNODB.
    Les 2 colonnes doivent être du même type.
    Donc en ce qui me concerne, mes tables sont toutes en INNODB, les colonnes sont du même type INT(11) et par contre je ne comprends pas l'histoire de l'index ....


    Merci pour vos aides !!!

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2008
    Messages : 764
    Par défaut oups
    Bon, c'est con mais en me relisant, j'ai trouvé l'erreur tout seul !

    En fait, dans ma requête, j'avais oublié de mentionner le nom de la colonne ciblée !

    Ce qui donne cette nouvelle requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE TABLE bdd_cuisine.commandes (id INT(11) NOT NULL AUTO_INCREMENT,id_client INT(11) NOT NULL, id_plat INT(11) NOT NULL, qte INT(11) NOT NULL, PRIMARY KEY(id), FOREIGN KEY(id_client) REFERENCES bdd_cuisine.client(id), FOREIGN KEY (id_plat) REFERENCES bdd_cuisine.plats(id))ENGINE = INNODB;


    Bon, mais c'est bien ça fera un sujet en plus pour ceux qui cherchent... avec les copies du terminal avec les bases, les tables et les types de colonnes, c'est sympa !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/03/2010, 13h45
  2. Erreur 1005 avec Foreign Key en InnoDB
    Par cd090580 dans le forum Outils
    Réponses: 5
    Dernier message: 14/07/2008, 13h41
  3. Primary Key et Foreign Key dans la même Entity
    Par Invité dans le forum JPA
    Réponses: 1
    Dernier message: 08/07/2008, 10h46
  4. PRIMARY KEY et FOREIGN KEY sur la même colonne ?
    Par SpecialCharacter dans le forum Outils
    Réponses: 4
    Dernier message: 31/01/2008, 17h35
  5. Problème de création table InnoDb + Foreign key (150)
    Par Bensor dans le forum Requêtes
    Réponses: 1
    Dernier message: 29/09/2006, 00h17

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