【发布时间】:2018-08-01 17:18:01
【问题描述】:
我创建了一个表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 的多值属性,但是我收到了错误
消息 1776,第 16 级,状态 0,第 51 行
引用表“Request”中没有与外键“FK__Request_Services__151B244E”中的引用列列表匹配的主键或候选键。消息 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)
);
【问题讨论】:
-
我确定这不是 MySQL。但是 - 您应该使用与引用的主键相同的列顺序。
-
标签: sql sql-server database