2017-06-25 103 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) 
);