ORA-00907:错过右括号!!我试图创建表,我应该添加一个外键吗?

时间:2018-04-16 18:03:05

标签: sql oracle

CREATE TABLE brunch      
(
    br_id INT NOT NULL PRIMARY KEY, 
    br_name INT NOT NULL 
)

CREATE TABLE employee 
(
    e_id INT NOT NULL PRIMARY KEY, 
    bdate DATE,
    fname VARCHAR2(30),
    lname VARCHAR2(30),
    sal NUMBER,
    sex VARCHAR2(1),
    address VARCHAR2(50),
    super_id INT REFERENCES employee(e_id) 
)

ALTER TABLE brunch ADD mgr_id int REFERENCES employee(e_Id);

ALTER TABLE employee ADD b_id INT REFERENCES brunch(br_id);

CREATE TABLE client
(
    c_id INT NOT NULL PRIMARY KEY,
    c_name VARCHAR2(40),
    c_oemail VARCHAR2(40),
    c_email VARCHAR2(40),
    b_id reference brunch(b_id) 
)

问题在于最后一个表,表客户端,它给我一条错误消息,上面写着

  

ORA-00907:缺少右括号

但我没有看到语法有任何问题。谢谢

1 个答案:

答案 0 :(得分:0)

最后DDL应为

create table client
(
 c_id     int  primary key,
 c_name   varchar2(40),
 c_oemail varchar2(40),
 c_email  varchar2(40),
 b_id references brunch(br_id) 
);
  • 其中列名b_id应为br_id
  • 没有名为referencereferences
  • 的关键字

P.S。对于定义为NOT NULL的列(已包含PRIMARY KEY),无需使用NOT NULL