2013-10-26 3 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

Помимо ответа Майка W, если вы хотите проверить, что «емкость от 12 до 25 студентов», я думаю, вы будете использовать: «NUMBER_OF_STUDENTS BETWEEN 12 AND 25» –

+0

Спасибо, не подумал. Я изменил его и повторю попытку ...... но это мой SQL-право? Нужно ли мне использовать waor 'CONSTRAINT'? –

ответ

4

В таблице, к которой вы пытаетесь применить проверку, уже есть значения, которые не позволяют проверить. Исправьте записи в таблице, которые не выполняются, затем примените проверку.

1

Убедитесь, что количество учащихся в каждом классе составляет от 12 до 25. таблица обновлений, где число учеников ниже 12, увеличится до 12. Если это выше 25, уменьшите.

Смежные вопросы