gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:11:59 25 4
gpt4 key购买 nike

您好,我正在创建多个表,其中一些表有多个键链接到同一个表。当我尝试创建外键链接时,我得到:

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

A FOREIGN KEY constraint does not have to be linked only to a PRIMARY KEY constraint in another table; it can also be defined to reference the columns of a UNIQUE constraint in another table.

您可以看到这个 fiddle 的工作示例:http://sqlfiddle.com/#!9/05663

关于MySQL 外键约束对于多个键失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36288440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com