首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >引用表中没有主键或候选键

引用表中没有主键或候选键
EN

Stack Overflow用户
提问于 2018-08-01 17:18:01
回答 1查看 95关注 0票数 0

我已经创建了一个表Request,它的主键由三列组成,还有一个外键。

代码语言:javascript
复制
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号线 无法创建约束或索引。请参阅先前的错误。

表:

代码语言:javascript
复制
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表:

代码语言:javascript
复制
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)
);
EN

Stack Overflow用户

发布于 2018-08-01 17:32:57

request中的主键定义为(cid, iqama, reqid),但在request_services_chosen中的REFERENCES子句中使用(reqid, iqama, cid)。这是错误的命令。

用同样的顺序。

代码语言:javascript
复制
CREATE TABLE Request_Services_chosen(
    ...
    FOREIGN KEY (Cid,Iqama,ReqId_) REFERENCES Request(Cid,Iqama,ReqID),
    ...
);
票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51638930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档