外键缺失括号

时间:2018-04-30 10:50:36

标签: sql

CREATE TABLE EMPLOYEE (
    EID CHAR(3) NOT NULL PRIMARY KEY,
    ENAME VARCHAR2(50) NOT NULL,
    JOB_TYPE VARCHAR2(50) NOT NULL,
    MANAGER CHAR(3) FOREIGN KEY REFERENCES EMPLOYEE(EID),
    HIRE_DATE DATE NOT NULL,
    DNO INTEGER FOREIGN KEY REFERENCES DEPARTMENT(DNO),
    COMMISSION DECIMAL(10,2),
    SALARY DECIMAL(7,2) NOT NULL,
);

CREATE TABLE DEPARTMENT (
    DNO INT NOT NULL PRIMARY KEY,
    DNAME VARCHAR(50),
    LOCATION VARCHAR(50) DEFAULT('NEW DELHI')
);

创建employee表 这给了我一个右括号的错误 并且已创建部门表

2 个答案:

答案 0 :(得分:2)

行中有一个额外的逗号

SALARY DECIMAL(7,2) NOT NULL,

删除该逗号,并创建Employee表。

  

您需要首先创建部门表以使用其中一个   列为 FOREIGN KEY

此外,检查您的数据库。可能已经有一个部门表。要在已创建所需表格时避免出现该错误,请使用关键字IF NOT EXISTS

CREATE TABLE IF NOT EXISTS Department(
    DNO INT NOT NULL PRIMARY KEY,
    DNAME VARCHAR(50),
    LOCATION VARCHAR(50) DEFAULT('NEW DELHI')
);  

答案 1 :(得分:1)

错误是由尾随逗号引起的,但您还有其他问题:

  • 内联参考不需要FOREIGN KEY
  • 您需要按正确的顺序定义表格。

所以。 。 。

CREATE TABLE DEPARTMENT (
    DNO INT NOT NULL PRIMARY KEY,
    DNAME VARCHAR(50),
    LOCATION VARCHAR(50) DEFAULT('NEW DELHI')
);

CREATE TABLE EMPLOYEE (
    EID CHAR(3) NOT NULL PRIMARY KEY,
    ENAME VARCHAR2(50) NOT NULL,
    JOB_TYPE VARCHAR2(50) NOT NULL,
    MANAGER CHAR(3) REFERENCES EMPLOYEE(EID),
    HIRE_DATE DATE NOT NULL,
    DNO INTEGER REFERENCES DEPARTMENT(DNO),
    COMMISSION DECIMAL(10,2),
    SALARY DECIMAL(7,2) NOT NULL
);

Here就是它的一个例子。