2014-02-15 60 views
-1

我想创建一个数据库表sales_order。SQL表创建错误

我的代码如下:

create table sales_order( 
ono varchar2(6) check(ono like 'o%'), 
cno varchar2(6), 
orderdate date not null, 
deladder varchar2(30), 
sno varchar2(6), 
deltype char(1) check (deltype in('P','F')), 
bill char(1), 
delydate date CHECK(delydate>orderdate), 
orderstatus varcahr2(10) set default('inprocess','fullfilled','backorder' 'cancelled'), constraint p5 primary key(ono), constraint f3 foreign key(sno) references salesman_master(sno)  ); 

捐赠以下错误:

delydate date CHECK(delydate>orderdate), 
* 
ERROR at line 9: 
ORA-02438: Column check constraint cannot reference other columns 
+1

看起来很明显 - 你的CHECK是不正确的。去掉它。 – duffymo

+0

删除后给出相同的错误。 – Ask

+0

如果你已经删除了这个检查约束,那么它不可能是完全相同的错误......但是你已经错误地拼写VARCHAR并且你的默认值是不正确的。 – Ben

回答

2

的错误是在SQL小提琴很清楚:

Schema Creation Failed: ORA-02438: Column check constraint cannot reference other columns 

然后当您解决各类其他错误(set defaultvarcahr2?没有关闭))它w兽人。试试这个:

create table sales_order ( 
    ono varchar2(6) check(ono like 'o%'), 
    cno varchar2(6), 
    orderdate date not null, 
    deladder varchar2(30), 
    sno varchar2(6), 
    deltype char(1) check (deltype in('P','F')), 
    bill char(1), 
    delydate date, 
    orderstatus varchar2(10) check (orderstatus in ('inprocess', 'fullfilled', 'backorder', 'cancelled')), 
    constraint p5 primary key(ono), 
    constraint f3 foreign key(sno) references salesman_master(sno) 
); 
+0

谢谢。这工作正常:) – Ask