2017-06-21 68 views
0

任何人都可以告诉我这段代码有什么问题吗?我无法弄清楚它有什么问题。我得到的唯一错误信息是“缺少右括号”。请帮忙无法创建表缺少右括号

CREATE TABLE employee (
emp_no NUMBER(3) NOT NULL PRIMARY KEY, 
emp_name VARCHAR(15) NOT NULL UNIQUE, 
emp_salary DECIMAL(8,2) NOT NULL, 
djob VARCHAR(15) NOT NULL FOREIGN KEY REFERENCES depot(djob) 
); 

回答

2

问题是FOREIGN KEY。你可以简单地做:

CREATE TABLE employee (
    emp_no NUMBER(3) NOT NULL PRIMARY KEY, 
    emp_name VARCHAR2(15) NOT NULL UNIQUE, 
    emp_salary DECIMAL(8,2) NOT NULL, 
    djob VARCHAR(15) NOT NULL REFERENCES depot(djob) 
); 

对于在网上申报,FOREIGN KEY是没有必要的。

请注意,我也将VARCHAR()更改为VARCHAR2(),这对Oracle更为接受。

0

最后一行应该与外键分开吗?

`

CREATE TABLE employee (
    emp_no NUMBER(3) NOT NULL PRIMARY KEY, 
    emp_name VARCHAR(15) NOT NULL UNIQUE, 
    emp_salary DECIMAL(8,2) NOT NULL, 
    djob VARCHAR(15) NOT NULL, 
    FOREIGN KEY 
     REFERENCES depot(djob) 
); 
0

下面是一个例子:http://sqlfiddle.com/#!4/19250

CREATE TABLE dept (
deptno number PRIMARY KEY, 
dname varchar2(100)); 

CREATE TABLE employee (
emp_no NUMBER(3) NOT NULL PRIMARY KEY, 
emp_name VARCHAR(15) NOT NULL UNIQUE, 
emp_salary DECIMAL(8,2) NOT NULL, 
djob number NOT NULL, 
CONSTRAINT fk_job FOREIGN KEY (djob) REFERENCES dept(deptno) 
);