2017-06-25 162 views
-1
use one_to_many; 

create table models(
model_id int primary key auto_increment unique, 
name varchar(50), 
manufacturer_id int 
); 


create table manufacturers(
manufacturer_id int primary key, 
name varchar(50), 
established_on timestamp, 
constraint fk_manufacturers_models foreign key(manufacturer_id) 
references models(manufacturer_id) 
); 

当我尝试创建一个像这个示例https://ibb.co/bPRGQ5一样多的模型时,它会抛出错误1215 cannot add foreign key constraint。我究竟做错了什么?mysql一对多关系

+0

顺便说一句,的PK始终是唯一的 – Strawberry

+0

是不是在错误的表上的约束? – Strawberry

+0

草莓你们伙计,我认为这个例子有点破了不是吗? –

回答

1

models.manufacturer_id必须编入索引。

但通常你会把外键约束放在许多表(模型)而不是一个表上。

+0

我研究了很多我认为这个例子它自己有点破碎。你能否确认一下 –

+0

我不明白你刚才所说的是什么 – ysth

+0

我认为我把图片与它里面的例子联系起来了。这个例子有点不对?目前的形式不可能做到这一点 –

0

如果我理解正确,您想获得什么尝试这种

create table manufacturers(
manufacturer_id int primary key auto_increment unique, 
name varchar(50), 
established_on timestamp 
); 

create table models(
model_id int primary key auto_increment unique, 
name varchar(50), 
manufacturer_id int, 
foreign key fk_manufacturer(manufacturer_id) 
references manufacturers(manufacturer_id) 
);