Я ожидаю ошибку, но я не понимаю, что я думаю

#sql #oracle

#sql #Oracle

Вопрос:

Я создаю представление

 SQL> create view DEPT20 AS
  2  select empno AS Employee_ID_ID,ename AS Employee, deptno as Department_ID from emp
  3  where deptno = 20
  4  with check option constraint emp_dept_20;

  View created.
  

Я ожидаю получить эту ошибку

 ORA-01402: view WITH CHECK OPTION where-clause violation
  

Но я не получаю ошибку, которую получаю

 SQL> update dept20
2  set    department_ID=30
3  where  Employee='Smith';

0 rows updated.

SQL>
  

Обычно мне не нравятся ошибки, но в этом я хочу ошибку, когда кто-то пытается выйти за пределы разрешенного.

Ответ №1:

Что произойдет, если вы запустите этот SQL?

 update dept20
set    department_ID=30
where  Employee='SMITH'; 
  

Если вы используете каноническую таблицу EMP, имена всех сотрудников указаны в верхнем регистре.