我不知道这种语法有什么问题。
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。
答案 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?