2014-02-15 59 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