SQL,检查用户约束

时间:2013-10-26 01:44:45

标签: sql database oracle11g

首先,表格:

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) - 检查违反约束

我做错了什么?

2 个答案:

答案 0 :(得分:4)

您尝试应用检查的表格已经包含未通过检查的值。修复失败的表中的条目,然后应用检查。

答案 1 :(得分:1)

确保每个班级的学生人数在12到25之间。更新表,其中学生人数低于12,增加到&gt; 12.如果它高于25减少。