【发布时间】:2012-08-30 17:41:04
【问题描述】:
朋友的我创建了一个包含三列复合主键的表,然后我创建了仅引用两列的子表。这将导致错误..请帮助我仅引用基表中的两列。
CREATE TABLE STUDENT
( SID NUMBER
, NAME VARCHAR2(20)
, DEPT VARCHAR2(20)
, CARD_F NUMBER
, CARD_S NUMBER
, PRIMARY KEY (SID, CARD_F, CARD_S)
);
CREATE TABLE MASTER
( BOOKNO NUMBER
, CARD_S NUMBER
, FOREIGN KEY (BOOKNO)
REFERENCES STUDENT(CARD_F)
);
【问题讨论】:
-
为什么不把
SID定义为主键呢?如果CARD_F和CARD_S是学生的唯一标识,是否将它们作为唯一键?
标签: oracle oracle10g oracle11g