gpt4 book ai didi

sql - SQL Server:在多列上添加外键

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:46 26 4
gpt4 key购买 nike

我试图在一个表的两列上创建一个外键,以指向另一个表的同一列,但似乎得到了一个错误。
我正在将SQL Server与Microsoft SQL Server Management Studio一起使用。
我做的是:

CREATE TABLE House 
(
hid INTEGER PRIMARY KEY,
hname VARCHAR(32) NOT NULL,
address VARCHAR(128) NOT NULL,
);

CREATE TABLE Room
(
sid INTEGER,
hid INTEGER FOREIGN KEY REFERENCES House(hid),
rname VARCHAR(32) NOT NULL,

CONSTRAINT sid_pk PRIMARY KEY(sid, hid)
);

CREATE TABLE Seat
(
hid INTEGER,
sid INTEGER,
plid INTEGER,
row INTEGER NOT NULL,
seat INTEGER NOT NULL,

CONSTRAINT sid_fk
FOREIGN KEY (hid, sid) REFERENCES Room(hid, sid), <-- Here's the error
CONSTRAINT plid_pk
PRIMARY KEY (hid, sid, plid),

UNIQUE(hid, sid, row, seat)
);

我一直听到“错误1776”说房间桌子上没有主键…

最佳答案

根据@hogan的评论..作为社区wiki发布,这样就不会丢失
Room表中,主键是(sid, hid)。但是在seat表中,您正在引用一个新的主键Room(hid, sid)
因此,如下所示更改room表约束定义
CONSTRAINT sid_fk
FOREIGN KEY (hid, sid) REFERENCES Room(sid,hid)

关于sql - SQL Server:在多列上添加外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41305693/

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