0

表格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

请善意地告诉我我的代码有什么问题,我该如何解决这个问题?

4

2 回答 2

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在任何地方指定,所以它是一个可选的外键

于 2013-04-18T07:55:59.497 回答
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)
)
于 2013-04-18T07:56:31.543 回答