为什么我的外键获得了无效的标识符?

时间:2016-03-29 17:39:31

标签: sql oracle

我在尝试创建学生表时遇到错误。我用外键收到错误。它说我有一个无效的标识符,但我仔细检查了studtype表以确保,我没有看到差异。任何帮助将不胜感激。

语句

 CREATE TABLE STUDENT
    (STUDID VARCHAR2(10) NOT NULL,
     STUDNAME VARCHAR2(30),
     STUDADDRESS VARCHAR2(30),
     STUDTELNO VARCHAR2(17),
     CONSTRAINT PKSTUD PRIMARY KEY(STUDID),
     CONSTRAINT FKSTYPE FOREIGN KEY(STUDTYPE) REFERENCES STUDTYPE(STUDTYPE) ON     DELETE CASCADE));

错误:ORA-00904:" STUDTYPE":无效标识符

CREATE TABLE STUDTYPE
(STUDTYPE VARCHAR2(30) NOT NULL,
 CONSTRAINT PKSTYPE PRIMARY KEY(STUDTYPE));

1 个答案:

答案 0 :(得分:0)

您应该在学生表中有一个STUDTYPE列。因此,学生表的创建脚本应如下所示

CREATE TABLE STUDENT
    (STUDID VARCHAR2(10) NOT NULL,
     STUDTYPE VARCHAR2(30),
     STUDNAME VARCHAR2(30),
     STUDADDRESS VARCHAR2(30),
     STUDTELNO VARCHAR2(17),
     CONSTRAINT PKSTUD PRIMARY KEY(STUDID),
     CONSTRAINT FKSTYPE FOREIGN KEY(STUDTYPE) REFERENCES STUDTYPE(STUDTYPE) ON     DELETE CASCADE));