SQL错误:ORA-00907:缺少右括号00907. 00000 - “缺少右括号”

时间:2016-06-21 21:44:53

标签: sql oracle oracle11g

我不知道这种语法有什么问题。

create table table3 (
id number,
id_table1 number,
id_table2 number,
area varchar2(130) not null,
status varchar2(20),
additional_info varchar2(100),
data date default sysdate,
responsable varchar2(60) not null,
constraint ck_status_contract check(status in('value1','value2','value3')),
constraint fk_id_table1 references table1 on delete set null,
constraint fk_id_table2 references table2 on delete set null,
constraint pk_id_contract primary key(id)
);

结果是:

  

SQL错误:ORA-00907:缺少右括号
  00907. 00000 - “缺少右括号”

我使用的是OracleXE112_Win64。

2 个答案:

答案 0 :(得分:1)

在您的FK上,您需要指定两端受影响的列

CONSTRAINT fk_column
FOREIGN KEY (column1, column2, ... column_n)
REFERENCES parent_table (column1,..)

答案 1 :(得分:0)

您错过了正确添加外键引用。

要指定foreign key约束,您应该使用内联

CONSTRAINT [constraint_name] FOREIGN KEY(customer_id) REFERENCES [master_table_name]([master_column_name])

请参阅本教程中的更多示例:What is foreign key?

资源链接:

SQL Error: ORA-00907: missing right parenthesis