所以我一直在研究这个问题几个小时,并且没有找到适合我正在做的事情的运气。
我目前遇到两个问题:创建一个表,其中多个外键引用相同的主键,并将这些属性拆分为多个列。
最后,我希望我的表看起来像这样,我的O-Director_ID是一列中的主键,与所有其他ID相关(在这种情况下为FAD_ID,另一列中的SAD_ID和SUD_ID)都是外键,对应于来自另一个表的主键(来自crew_member的Member_ID,已存在)。
这是我目前正在尝试做的,只是为了创建多个外键(我甚至不知道如何创建第二列):
mysql> create table Other_Directing (
-> O_Director_ID int (4) not null auto_increment,
-> FAD_ID int (5) not null,
-> SAD_ID int (5) not null,
-> SUD_ID int <5> not null,
-> primary key (O_Director_ID),
-> foreign key (FAD_ID) references crew_member(Member_ID),
-> foreign key (SAD_ID) references crew_member(Member_ID),
-> foreign key (SUD_ID) references crew_member(Member_ID)
-> );
然而,即使这不起作用,我收到此错误消息:
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'<5> not null,
primary key (O_Director_ID),
foreign key (FAD_ID) references crew_'
at line 5
谢谢,我希望这是有道理的。
此致
迈克尔
答案 0 :(得分:1)
更改SUD_ID int <5> not null,
对此:SUD_ID int (5) not null,
答案 1 :(得分:0)
您的项目是否真的需要int列上的非默认大小?如果是这样,你有一个错字...你的一个大小是在&lt;&gt;而不是()的:-> SUD_ID int <5> not null
应该是-> SUD_ID int (5) not null
如果您确定由于内存限制确实需要大小:
create table Other_Directing (
O_Director_ID int not null auto_increment,
FAD_ID int not null,
SAD_ID int not null,
SUD_ID int not null,
primary key (O_Director_ID),
foreign key (FAD_ID) references crew_member(Member_ID),
foreign key (SAD_ID) references crew_member(Member_ID),
foreign key (SUD_ID) references crew_member(Member_ID)
);