Erreur 1005: Can’t create table
Il y a quelques jours, j’ai eu une erreur MySQL Lors de l’import d’une base de données MySQL utilisant l’engin InnoDB.
ERROR 1005 (HY000): Can't create table 'Table.frm' (errno: 150)
En effet, Cette erreur provient d’une mauvaise déclaration d’une clé étrangère. Par exemple, vous pouvez déclarer une clé comme int unsigned auto_increment, et puis vous la référeriez avec un champs int (qui n’est pas unsigned).
Pour voir exactement ce qui a causé l’erreur utilisez cette commande :
mysql>SHOW ENGINE INNODB STATUS;
Cette commande vous donnera en fait la derniere erreur conernant les cles etrangeres InnoDB.
Si vous etes en train d’importer depuis un dump. vous pouvez desactiver les tests sur les cles etrangeres en mettant ceci en debut de votre script :
SET FOREIGN_KEY_CHECKS = 0;
et ceci en fin de votre script
SET FOREIGN_KEY_CHECKS = 1; -- BOTTOM