Se connecter / S'enregistrer
Votre question

[MySQL] Problème de clef étrangère (erreur 150)

Tags :
  • MySQL
  • Programmation
Dernière réponse : dans Programmation
19 Juillet 2007 16:14:26

Bonjour à tous.

J'ai un problème avec la fameuse erreur 150, de malformation de clef étrangère, et je n'arrive pas à trouver l'erreur.

Voici le descriptif de mes deux tables.
  1. CREATE TABLE `codes_categorie_questions` (
  2. `categorie_id` tinyint(2) NOT NULL auto_increment,
  3. `categorie_label` varchar(255) NOT NULL default '',
  4. PRIMARY KEY (`categorie_id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;

  1. CREATE TABLE `annuaire_questions` (
  2. `id_question` int(11) NOT NULL auto_increment,
  3. `id_categorie` tinyint(2) unsigned NOT NULL,
  4. `question_titre` text NOT NULL,
  5. `question_texte` text NOT NULL,
  6. PRIMARY KEY (`id_question`)
  7. ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=117 ;

Et voilà ma requête de création de ma contrainte.
  1. ALTER TABLE `annuaire_questions`
  2. ADD CONSTRAINT `fk_categorie_question`
  3. FOREIGN KEY ( `id_categorie` )
  4. REFERENCES `codes_categorie_questions` ( `categorie_id` )
  5. ON UPDATE CASCADE
  6. ON DELETE CASCADE ;

Les deux tables sont bien en InnoDB, les champs id_categorie et categorie_id sont bien des tinyint(2) non signés. Je ne sais pas où se situe mon erreur. Si quelqu'un pouvait me dépanner, cela serait fort sympathique. :) 

Merci beaucoup !

Autres pages sur : mysql probleme clef etrangere erreur 150

19 Juillet 2007 18:20:26

salut,
le champs categorie_id de la table codes_categorie_questions est signé!
19 Juillet 2007 18:31:10

Hmm... Je crois que j'ai perdu une belle occasion de me taire ! :D 

Merci à toi, Coca25. Note à moi-même : ne jamais nommer une dizaine de tables codes_categories_XXXX... On finit par s'embrouiller méchamment. ;) 
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS