2013-10-26 152 views
0

首先,表:SQL,檢查用戶約束

CLASS CLASS_NAME   PROFESSOR   NUMBER_OF_STUDENTS  COST START_DAT END_DATE ROO 
----- -------------------- ------------------ ------------------ ---------- --------- --------- --- 
PC102 Peripherals   Henry Higgins      12 $1,100.00 11-JAN-13 11-MAY-13 129 
PC101 MS OFFICE BASICS  INDIANA JONES      18 $1,000.00 10-JAN-13 10-MAY-13 127 
EE101 Elementary Education Frank McCourt      22 $900.00 12-JAN-13 12-MAY-13 227 
PC123 MS OFFICE ADVANCED Bill Gates       10 $800.00 13-JAN-13 13-MAY-13 180 

問題:

添加一個檢查約束學生的數量,以保證能力的學生12和25之間 。

我已經試過

ALTER TABLE BW_CLASS 
ADD CHECK(NUMBER_OF_STUDENTS > 15 AND 
NUMBER_OF_STUDENTS < 25); 

什麼是第1行返回 錯誤: ORA-02293:無法驗證(STUDENT.SYS_C007516) - 檢查約束違反

我在做什麼錯?

+0

除了Mike W的回答,如果你想檢查「容量在12到25名學生之間」,我想你會使用:「12和25之間的NUMBER_OF_STUDENTS」 –

+0

謝謝,沒想到。我改變它,然後再試一次......但是我的SQL是否正確?我需要使用waor'CONSTRAINT'嗎? –

回答

4

您嘗試應用檢查的表格已經具有檢查失敗的值。修復表中失敗的條目,然後應用檢查。

1

確保每個班級的學生人數在12到25之間。更新表格,其中學生人數低於12增加到> 12。其中高於25的人減少。