我一直致力于一个学生信息系统项目,我遇到了一个问题,我需要为一个部门表定义一个外键,该表将链接到学生表。声明如下: -
Create Table Department
(
deptID int NOT NULL PRIMARY KEY,
deptINTRO VARCHAR(50) NULL,
deptPhone VARCHAR(20) NULL,
deptADDRESS VARCHAR(30) NULL,
deptManager VARCHAR(20) NULL,
stuID int FOREIGN KEY REFERENCES Student(stuID)
);
第7行的错误:
ORA-00907:缺少右括号
我是SQL BTW的新手。
答案 0 :(得分:0)
假设您有一个如下所示的学生表,您可以使用以下语句创建:
Create Table Student(stuID int PRIMARY KEY);
Create Table Department(
deptID int NOT NULL PRIMARY KEY,
deptINTRO VARCHAR(50) NULL,
deptPhone VARCHAR(20) NULL,
deptADDRESS VARCHAR(30) NULL,
deptManager VARCHAR(20) NULL,
stuID int,
CONSTRAINT fk_stID FOREIGN KEY(stuID) REFERENCES Student(stuID)
);
/
答案 1 :(得分:0)
在Oracle CREATE TABLE语句中创建参照完整性约束有两种不同的方法:内联和外联。
在线:
Create Table TableName(
ID number not null CONSTRAINT TableName_PK PRIMARY KEY,
FK number not null CONSTRAINT TableName_FK1 REFERENCES ForeignTable(ID)
);
外的线:
Create Table TableName(
ID number not null,
FK number not null,
CONSTRAINT TableName_PK PRIMARY KEY (ID),
CONSTRAINT TableName_FK1 FOREIGN KEY (FK) REFERENCES ForeignTable(ID)
);
在两种情况下,命名约束(CONSTRAINT Constraint_Name
)都是可选的。在您的代码中,您通过在必要的内联约束声明中包含不必要的FOREIGN KEY
语句来混合使用两种类型的声明。