2013-02-06 126 views
2

我有一個SQL數據庫與Visual Studio打開,我需要添加一些約束已經創建的表。我需要一個外鍵,它已經有了第三個表中的外鍵。爲了更好地解釋,添加約束與多個外鍵

ANIMALI需要來自表GABBIA的外鍵,其已經具有來自表STANZA的外鍵。這是我想出的代碼:

ALTER TABLE ANIMALE ADD CONSTRAINT REF_ANIMA_GABBI_FK FOREIGN KEY (n_stanza, n_gabbia) REFERENCES GABBIA(n_stanza, n_gabbia); 

這給了我一個錯誤,n_stanza is a column id not valid。我認爲這是關於類GABBIA的ID來自加入n_gabbia和n_stanza的事實,後者是類STANZA中的關鍵。

任何人都可以幫我嗎?

回答

1

爲了使ALTER TABLE語句按照書面形式工作,兩個表(不是)「ANIMALE」和「GABBIA」必須包含列「n_stanza」和「n_gabbia」。

另外,在表「GAB​​BIA」中,在一對列「n_stanza」和「n_gabbia」中必須有主鍵約束或唯一約束。也就是說,在「GABBIA」表中,您需要類似primary key (n_stanza, n_gabbia)unique (n_stanza, n_gabbia)