2017-10-19 10 views
0

Voici ce que j'ai essayé:Essayer de créer une table commune dans MySQL, mais la clé étrangère ne fonctionne pas

create table books(bcode int(5) primary key, bname varchar(45)); 

et

create table customers(cid int(4), cname varchar(20), cadd varchar(40), bcode, 
varchar(45), foreign key(bcode) references books(bcode)); 

Après l'exécution de la deuxième instruction, l'erreur suivante apparaît :

ERROR 1215 (HY000): Cannot add foreign key constraint 

Je n'arrive pas à trouver une solution. Toute aide est appréciée.

+0

Vous n'avez pas spécifié un type de données pour bcode. Spécifiez-le et voyez si cela aide. –

+1

N'imposez pas de délais aux personnes répondant aux questions sur ce site. Ce site est géré par des bénévoles qui essaient d'aider les gens. Vous ne pouvez pas garantir que quelqu'un répondra dans les délais impartis et l'ajout de commentaires «d'aide urgente» vous rendra plus susceptible de recevoir des notes de bas de page, car cela ne correspond pas à la question. – Lexi

+0

Non lié à la question, mais vous devez définir une clé primaire dans la deuxième table 'costumers', comme' cid' comme clé primaire, puisque logiquement, chaque table devrait avoir une clé primaire afin que deux enregistrements puissent être facilement distingués. –

Répondre

3

Dans les premiers livres de table que vous utilisez bcode comme nombre entier Mais dans la deuxième table que vous utilisez bcode comme varchar,

Ainsi, à droite on est

create table customers(cid int(4), cname varchar(20), cadd varchar(40), bcode 
int(5), foreign key(bcode) references books(bcode));