#1005 - Can't create table (errno: 150)

Résolu/Fermé
dallap - Modifié par dallap le 7/08/2011 à 21:39
 dallap - 7 août 2011 à 23:03
Bonjour tout le monde,


J'ai une erreur mysql qui m'empêche d'importer mes tables via php.
J'ai cherché sur pas mal de forums mais je n'arrive toujours pas à résoudre le problème de clés étrangères.
Voici mes tables:



CREATE TABLE IF NOT EXISTS 'country' ( 
  'id_country' int(11) NOT NULL AUTO_INCREMENT, 
  'name_country' varchar(45) NOT NULL, 
  'language_country' varchar(45) NOT NULL, 
  PRIMARY KEY ('id_country') 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; 



CREATE TABLE IF NOT EXISTS 'base'.'city' ( 
'id_city' INT NOT NULL AUTO_INCREMENT , 
'name_city' VARCHAR( 45 ) NOT NULL , 
'id_country' INT NOT NULL , 
PRIMARY KEY ( 'id_city' ) , 
INDEX 'id_country' ( 'id_country' ASC ) , 
CONSTRAINT 'id_country' FOREIGN KEY ( 'id_country' ) REFERENCES 'base'.'country' ( 
'id_country'  
) ON DELETE SET NULL ON UPDATE SET NULL  
) ENGINE = InnoDB;


id_country de la table city est sencé pointer sur celui de la table country avec une clé étrangère mais j'obtient l'erreur:
#1005 - Can't create table 'base.city' (errno: 150) (<a href="server_engines.php?engine=InnoDB;page=Status;server=317;token=cb0ae8af76d85b2fb37e88e">Détails...</a>)


Une idée sur mon problème? :(

PS: j'ai créé mes tables avec mysql workbench
j'ai essayé de mettre id_country en INT(10) UNSIGNED dans les 2 tables mais ça ne change rien

Merci!

1 réponse

J'ai finalement réussi à résoudre mon problème grace à ce guide:
http://verysimple.com/2006/10/22/mysql-error-number-1005-cant-create-table-mydbsql-328_45frm-errno-150/
3