表#1:
CREATE TABLE Department(
Dept_ID char(02) Primary Key,
Dept_Name varchar(20) ,
Manager_ID char(03),
Location_ID char(04)
)
表#2:
CREATE TABLE employee (
Employee_ID char(03) Primary key,
First_Name varchar(10),
Dept_ID char(02) foreign key references Department(Dept_ID),
Email varchar(10),
Tel_No char(10),
Hire_Date Date
)
当我尝试在表#2中创建一个FOREIGN KEY时。我收到以下错误。
ORA-00907: missing right parenthesis
请善意告诉我我的代码中有什么错误,我该如何解决这个问题?
答案 0 :(得分:3)
只需删除foreign key
:
CREATE TABLE employee (
Employee_ID char(03) Primary key,
First_Name varchar(10),
Dept_ID char(02) references Department(Dept_ID),
Email varchar(10),
Tel_No char(10),
Hire_Date Date
)
因为外键默认引用主键,
CREATE TABLE employee (
Employee_ID char(03) Primary key,
First_Name varchar(10),
Dept_ID char(02) references Department,
Email varchar(10),
Tel_No char(10),
Hire_Date Date
)
也足够了。
注意,外键列不是必需的 - 您没有在任何地方指定not null
,因此它是可选外键。
答案 1 :(得分:1)
外键通常作为Oracle中的约束添加:
CREATE TABLE employee (
Employee_ID char(03) Primary key,
First_Name varchar(10),
Dept_ID char(02),
Email varchar(10),
Tel_No char(10),
Hire_Date Date,
CONSTRAINT fk_department foreign key (Dept_ID) references Department(Dept_ID)
)