簡體   English   中英

帶外鍵的復合主鍵

[英]composite primary key with foreign key

我有一個數據庫“ STUDENT”。 有4個表格“ INFO”,“ STREAM”,“ GRADE”和“ MARKS”。

  • INFO具有3列ID,NAME,STR_NO。
  • STREAM有2列STR_NO,STR_NAME。
  • GRADE有2列PERCENT,GRADE。
  • MARKS具有3列ID,即STR_NO,TOTAL_MARK,FULL_MARK

我已經在信息表上聲明了一個復合主鍵,即

PRIMARY KEY(ID, STR_NO)

但是當我在STREAM上聲明外鍵時

FOREIGN KEY(STR_NO) REFERENCES INFO(ID,STR_NO)

它給出了錯誤

為什么以及如何解決這個問題

如果我了解您的表所代表的內容,則看起來您具有向后的外鍵關系。 看起來STR_NO應該是STREAM上的主鍵,並且INFO上應該有一個外鍵約束,要求INFO.STR_NOSTREAM.STR_NO或在代碼中具有匹配的值

ALTER TABLE INFO
  ADD CONSTRAINT INFO_FK1
    FOREIGN KEY (STR_NO) REFERENCES STREAM(STR_NO);

祝你好運。

做這個:

ALTER TABLE STREAM ADD(ID NUMBER)

ALTER TABLE INFO
  ADD CONSTRAINT INFO_FK1
    FOREIGN KEY (ID, STR_NO) REFERENCES STREAM(ID, STR_NO);

由於表信息具有復合主鍵ID, STR_NO ,因此對其的任何引用也必須同時包含這兩列。

有關更多詳細信息, 請參見此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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