2017-06-21 2 views
0

Kann mir jemand sagen, was mit diesem Code nicht stimmt? Ich konnte nicht herausfinden, was damit nicht stimmt. Die einzige Fehlermeldung, die ich bekommen habe, ist "fehlende rechte Klammer". Bitte helfenDie Tabelle kann nicht erstellt werden, wenn die rechte Klammer fehlt

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) 
); 

Antwort

2

Das Problem ist die FOREIGN KEY. Sie können einfach tun:

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) 
); 

Für die in-line Erklärung, FOREIGN KEY nicht notwendig ist.

Beachten Sie, dass ich auch geändert VARCHAR() zu VARCHAR2(), die mehr für Oracle akzeptiert wird.

0

sollte nicht die letzte Zeile mit Fremdschlüssel als separate Zeile sein?

`

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

Hier ist ein Beispiel: 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) 
); 
Verwandte Themen