2014-03-13 93 views
1

我希望把一個元組約束在下面的代碼,當FASE是「E」,SP必須至少有2元組約束

Create table MODULE  
    (
    code varchar2(6),  
    omschr varchar2(25), 
    fase varchar2(1) CHECK(fase='P' OR fase='K' OR fase='E'),  
    docent varchar2(3),  
    sp number(1), 
    PRIMARY KEY (code) 
    ); 
+0

嘗試'alter table module add constraint fase_e_sp_must_be_2_or_more check(fase <>'E'或sp> = 2)' – krokodilko

回答

2

嘗試:

Create table MODULE  
    (
    code varchar2(6),  
    omschr varchar2(25), 
    fase varchar2(1),  
    docent varchar2(3),  
    sp number(1), 
    PRIMARY KEY (code), 
    CHECK(fase='P' OR fase='K' OR (fase='E' and sp >= 2)) 
    ); 

分享和享受。

+0

兩個檢查約束?他們可以很容易地合併爲一個,請參閱kordirko的評論 – smnbbrv

+0

@simon:kordirko的評論爲現有表添加了第二個約束。它不會合並這兩個。 –

+0

哎呀,對不起。無論如何,我認爲這應該是一個約束。 – smnbbrv