我已经创建了一个表Request,它的主键由三列组成,还有一个外键。
CREATE TABLE Request
(
Iqama varchar(255) ,
Cid int,
ReqID int,
FOREIGN KEY (Iqama, Cid) REFERENCES Users(Iqama, ID),
PRIMARY KEY (Cid, Iqama, ReqID)
);我还创建了下面的表,它是表Request的一个多值属性,但是我得到了一个错误。
Msg 1776,16级,状态0,第51行 引用表“Request”中没有与外键“FK__Request_Services__151B244E”中的引用列列表匹配的主键或候选键。 Msg 1750,16级,状态1,51号线 无法创建约束或索引。请参阅先前的错误。
表:
CREATE TABLE Request_Services_chosen
(
Iqama varchar(255) ,
Cid int,
ReqId_ int,
Servicechosen varchar(255),
FOREIGN KEY (ReqId_, Iqama, Cid) REFERENCES Request(ReqID, Iqama, Cid),
PRIMARY KEY (ReqId_, Iqama, Cid, Servicechosen)
);下面是Users表:
CREATE TABLE Users
(
ID int NOT NULL,
Iqama varchar(255) NOT NULL,
Name varchar(255),
Password varchar(255),
Phone varchar(255),
PRIMARY KEY (Iqama, ID)
);发布于 2018-08-01 17:32:57
request中的主键定义为(cid, iqama, reqid),但在request_services_chosen中的REFERENCES子句中使用(reqid, iqama, cid)。这是错误的命令。
用同样的顺序。
CREATE TABLE Request_Services_chosen(
...
FOREIGN KEY (Cid,Iqama,ReqId_) REFERENCES Request(Cid,Iqama,ReqID),
...
);https://stackoverflow.com/questions/51638930
复制相似问题