[英]SQL Server: adding foreign key on multiple columns
我正在嘗試在表的兩列上創建一個外鍵以指向另一個表的同一列,但我似乎得到一個錯誤。
我正在使用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的帖子,將其作為社區維基,這樣就不會丟失
在Room
表中,主鍵是(sid, hid)
..但是在seat
表中,您正在引用一個新的主鍵Room(hid, sid)
所以改變你的room
表約束定義,如下所示
CONSTRAINT sid_fk FOREIGN KEY (hid, sid) REFERENCES Room(sid,hid)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.