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.
CREATE TABLE `codes_categorie_questions` (
`categorie_id` tinyint(2) NOT NULL auto_increment,
`categorie_label` varchar(255) NOT NULL default '',
PRIMARY KEY (`categorie_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=17 ;
CREATE TABLE `annuaire_questions` (
`id_question` int(11) NOT NULL auto_increment,
`id_categorie` tinyint(2) unsigned NOT NULL,
`question_titre` text NOT NULL,
`question_texte` text NOT NULL,
PRIMARY KEY (`id_question`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=117 ;
Et voilà ma requête de création de ma contrainte.
ALTER TABLE `annuaire_questions`
ADD CONSTRAINT `fk_categorie_question`
FOREIGN KEY ( `id_categorie` )
REFERENCES `codes_categorie_questions` ( `categorie_id` )
ON UPDATE CASCADE
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 !