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

swatt Messages postés 26 Date d'inscription   Statut Membre Dernière intervention   -  
 Rage -
Slt les programmeur,

J'ai un problème avec mon create table ci dessous, phpmyadmin me donne comme erreur:
#1005 - Can't create table '.\giggles\test.frm' (errno: 150)

J'ai chercher une solution sur les forums il y en avait mais j'y ai rien compris.

CREATE TABLE test
(
id_kids int(10) unsigned not null auto_increment,
description varchar(200) NULL,
description_fr varchar(200) NULL,
quantity smallint(4) unsigned NOT NULL default '1',
price decimal(6,2) unsigned NOT NULL default '0.00',
instock enum('y','n') NOT NULL default 'y',
visible enum('true','false') NOT NULL default 'true',
id_mat int(5) not null,
Primary Key (id_kids),
FOREIGN KEY(id_mat) REFERENCES kids(id_kids1)
)

Est ce qu'on peut m'aider merci.
A voir également:

5 réponses

CrazyCat
 
Ce souci vient très fréquement de la définition de la FOREIGN KEY. id_mat et id_kids1 ne sont peut-être pas exactement du même type.
20
tola
 
Bien que ce post soit ancien...pour ceux qui auraient ce même message d'erreur, c'est effectivement (selon moi...) parce que la clé étrangère n'est pas STRICTEMENT du même type. Dans mon cas, j'avais une 'foreign key' en integer (soit int(11) en mysql 5.0.51) et un 'id' dans l'autre table en 'integer UNSIGNED' (soit int(10)) !!! Le fait de rajouter 'unsigned' après le type a tout résolu !
0
lenouvdu44 Messages postés 55 Date d'inscription   Statut Membre Dernière intervention   6
 
Cela peut aussi être du à une différence du moteur, par ex, référencer une table MyISAM par une table INNODB
0
visitant
 
Dans mon cas, j'ai obtenu cette même erreur quand il y avait une création d'une foreign key d'une table InnoDb vers une autre table MyISAM. j'ai tout mis à InnoDB et je n'ai plus l'erreur.
0
LivingDeadRaccoon
 
merci lenouvdu44 & visitant! L'outil mysql workbench que j'utilise à viré d'un type à l'autre lors de la modelisation. Pourquoi ? c'est un mystère, mais c'est la solution :-) Merci!
0
Afre Hick
 
Ou soi, la clé étrangere ne réfère pas (foreign key (num_client) references client (num_client) au lieu de "references client (num_cli)", dans la table client.
Sans limites.
0
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
Bonjour,

Quel type de table souhaitais-tu créer ? il me semble que certains types gérés par MySql ne supportent pas les clés étrangères...

Xavier
0
swatt Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
en moi j'ai essayé de rentré cette table dans ma base de donné via phpmyadmin par l'option sql il m'a pas demandé de choisir un type de table en particulier j'ai juste entré la table comme ci-dessus.
0
Likide
 
il est possible que le type(int(10)unsigned Not NULL, int(10) Not NULL,) du champ dans la table fille ne soit pas le meme que dans la table d'origine...
0
swatt Messages postés 26 Date d'inscription   Statut Membre Dernière intervention  
 
En faite je cré 2 tables la 1ère table est en relation avec la 2nd table par id.
La 1ère table s'appelle kids et la 2nd test.
id_kids1 est l'id de kids et j'ai mis 2 id à test id_mat et id_kids.

D'ou id_mat=id_kids1

J'espère que j'ai répondu à ta question
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Reivax962 Messages postés 3672 Date d'inscription   Statut Membre Dernière intervention   1 011
 
En fait non ^^

Le type de table, c'est MyISAM, ou innoDB, ou d'autres...
-1
cocoRiko
 
j ' ai le meme probleme --> le probleme vient du fait que les ENGINES sont differents. Il suffit juste que l'engine de ttes les tables soit le meme
0