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

만약 당신이 그 check constraint를 제거했다면 그것은 정확히 같은 에러가 아닐 수 있습니다 ... 그러나 당신은 VARCHAR의 철자가 틀렸고 당신의 기본값이 올바르지 않습니다. – Ben

답변

2

오류는 SQL 바이올린 상당히 분명하다 : 당신이 모듬 해결할 때 다음

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

다른 오류 (set default? varcahr2? 닫지 않음 )) w orks. 사용해보기 :

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