我期待一个错误,但我没有得到我想的

时间:2011-10-02 19:47:17

标签: 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 个答案:

答案 0 :(得分:3)

如果您运行 SQL会怎样?

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

如果您使用规范的EMP表,则所有员工的姓名都是大写的。