学习Oracle创建约束时,有同学使用下列语句建表:
create table emp(
empno number(4) primary key,
ename varchar2(10),
job varchar2(10),
hiredate date,
sal number(7,2),
deptno number(2) constraint deptno_notnull not null,
constraint emp_deptno foreign key (deptno) references emp(empno),
constraint emp_deptno foreign key disable
);
出错信息显示:
> ORA-00906: missing left parenthesis
即最后一行表达式有问题,显示左括号缺失,我个人认为约束语句内容重复了。
解决办法:
create table emp(
empno number(4) primary key,
ename varchar2(10),
job varchar2(10),
hiredate date,
sal number(7,2),
deptno number(2) constraint deptno_notnull not null,
constraint emp_deptno foreign key (deptno) references emp(empno) disable
--constraint emp_deptno foreign key disable
);
将最后一句表达式注释掉,将约束状态disable放到定义约束语句的最后,上机通过。