簡體   English   中英

SQL Server:在多個列上添加外鍵

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM