Question

Quand j'exécuter la requête en dessous renvoie une erreur,

alter table `ttis`.`users` 
add constraint `FK_Role_ID` FOREIGN KEY (`ROLE_ID`) REFERENCES `roles` (`ROLE_ID`)

Erreur:

Error Code : 1005
Can't create table 'ttis.#sql-9c_8a' (errno: 150)
Était-ce utile?

La solution

Jetez un oeil à ce poste: 13.6.4.4. Contraintes FOREIGN KEY et la recherche de "150". Il dit ici:

  

Si vous recréez une table qui était   larguée, il doit avoir une définition   qui est conforme à la clé étrangère   contraintes faisant référence. Il doit   ont les noms de la colonne de droite et types,   et il doit avoir des indices sur la   clés référencées, comme indiqué précédemment. Si   ceux-ci ne sont pas satisfaits, les retours MySQL   numéro d'erreur 1005 et fait référence à l'erreur   150 dans le message d'erreur.

     

Si les rapports MySQL un numéro d'erreur 1005   à partir d'une instruction CREATE TABLE, et   message d'erreur se réfère à l'erreur 150,   création de la table a échoué en raison d'une   contrainte de clé étrangère n'a pas été   correctement formé. De même, si un   ALTER TABLE échoue et il se réfère à   erreur 150, ce qui signifie une clé étrangère   définition serait mal formé   pour la table modifiée. Vous pouvez utiliser   SHOW ENGINE ETAT INNODB pour afficher une   explication détaillée des plus   récente erreur de clé étrangère InnoDB dans la   serveur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top