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

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    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 : 757
    Points : 572
    Points
    572
    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 !!!
    OS : LinuxMint 20

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    757
    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 : 757
    Points : 572
    Points
    572
    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 !
    OS : LinuxMint 20

+ 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. 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