有人能告诉我这段代码有什么问题吗?我无法弄清楚它有什么问题。我得到的唯一错误信息是"缺少右括号"。请帮忙
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 :(得分: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。
答案 1 :(得分: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 :(得分: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)
);