学习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放到定义约束语句的最后,上机通过。

本文介绍了一个Oracle数据库中创建表及约束时出现的错误,并给出了正确的解决方案。错误来源于约束语句的重复与不当的位置,修正后的代码成功通过了上机测试。

490

被折叠的 条评论
为什么被折叠?



