繁体   English   中英

MySQL外键约束对于多个键失败

[英]MySQL Foreign Key constraint fails for multiple keys

嗨,我正在创建几个表,其中一些表具有链接到同一表的多个键。 当我尝试创建外键链接时,提示:

errno: 150 "Foreign key constraint is incorrectly formed"

这是我要创建的表:

create table EventFeed (
 EventFeedID integer auto_increment not null,
 EventName varchar(100),
 EventTime Timestamp,
 EventLocation varchar(100),
 primary key (EventFeedID)
);

create table Calendar (
 MyEventID integer auto_increment not null,
 EventFeedID integer,
 EventName varchar(100),
 EventTime Timestamp,
 EventLocation varchar(100),
 AttendeeID varchar(100),
 primary key (MyEventID),
 foreign key (EventFeedID) references EventFeed (EventFeedID),
 foreign key (EventName) references EventFeed (EventName),
 foreign key (EventTime) references EventFeed (EventTime),
 foreign key (EventLocation) references EventFeed (EventLocation),
 foreign key (AttendeeID) references Users (UserID)
);

该错误似乎来自“日历”表中的外键,但是我的其他一些表也使用了类似的外键,并且未给出任何错误

谁能告诉我我在做什么错?

任何帮助深表感谢

除具有唯一约束的列外,您不能在列上具有非主键的外键。 因此,如果希望外键引用EventName,EventTime等,则必须使其唯一。

您可以在这里查看: Technet Microsoft

一个FOREIGN KEY约束不必仅链接到另一个表中的PRIMARY KEY约束。 也可以定义它引用另一个表中的UNIQUE约束的列。

您可以在工作示例中看到这个小提琴: http : //sqlfiddle.com/#!9/05663

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM