具有外键的复合主键

时间:2015-11-27 19:01:33

标签: sql oracle ddl

我有一个数据库' STUDENT'。有4个表格' INFO',' STREAM'' GRADE' &安培; ' MARKS'

  • INFO有3列ID,NAME,STR_NO。
  • STREAM有两列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)

它给出了错误

为什么以及如何解决这个问题

2 个答案:

答案 0 :(得分:0)

如果我理解你的表代表什么,看起来你有向后的外键关系。看起来STR_NO应该是STREAM上的主键,并且INFO上应该有一个外键约束,要求INFO.STR_NO在{{1}中具有匹配值 - 或者,在代码中

STREAM.STR_NO

祝你好运。

答案 1 :(得分:0)

这样做:

pane.setBottom( hBox );

由于表格信息具有复合主键ALTER TABLE STREAM ADD(ID NUMBER) ALTER TABLE INFO ADD CONSTRAINT INFO_FK1 FOREIGN KEY (ID, STR_NO) REFERENCES STREAM(ID, STR_NO); ,因此对它的任何引用也必须包含两列。

有关详细信息,请see here