当前位置: 首页 > 图文教程 > 数据库 > Oracle > oracle 下WITH CHECK OPTION用法

Oracle
理解SCN与TimeStamp的相互转换
用OMS来实现Oracle数据备份的方法
详细介绍Oracle数据库的启动和关闭
Oracle数据库重做日志文件丢失后的恢复
检测Oracle的可用性和表空间容量
oracle的long类型字段的应用
把数据从MySQL迁到Oracle的几点注意事项
没有Oracle客户端系统移植的三种方法
Oracle监听器服务不能启动的7步解决法
Oracle 10g的自动段空间管理(ASSM)
Oracle运行速度与效率高的秘密
Oracle实现自增型ID和删除重复记录
Oracle数据库存储过程的6个问题
Oracle 10G里手工建库的全过程
Oracle 10g手工创建数据库个人经验
redhat linux 下安装oracle 10g 的方法
Oracle静态注册和动态注册
Oracle数据更改后出错
JSP+Oracle简便通用的表单数据存储处理方法
Oracle 10g实用程序trcsess:跟踪sql语句

Oracle 中的 oracle 下WITH CHECK OPTION用法


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 53 ::
收藏到网摘: n/a

如果视图定义包括条件(譬如 WHERE 子句)并且其意图是确保任何引用该视图的 INSERT 或 UPDATE 语句都应用 WHERE 子句,则必须使用 WITH CHECK OPTION 定义该视图。这个选项可以确保数据库中正在修改的数据的完整性。如果在 INSERT 或 UPDATE 操作期间违反了条件,则返回 SQL 错误。
下面是一个使用了 WITH CHECK OPTION 的视图定义的示例。要确保总是检查条件,WITH CHECK OPTION 是必需的。在这种情况下,我们希望确保 DEPT 总是 10。这会限制 DEPT 列的输入值。当使用视图插入新值时,总是强制执行 WITH CHECK OPTION。
复制代码 代码如下:

CREATE VIEW EMP_VIEW2
(EMPNO,EMPNAME,DEPTNO,JOBTITLE,HIREDATE)
AS SELECT ID,NAME,DEPT,JOB,HIREDATE FROM EMPLOYEE
WHERE DEPT=10
WITH CHECK OPTION;
如果这个子句不存在,那么某个使用该视图的用户就有可能更新某条记录,使其不再属于该视图。例如,下列 SQL 语句可能会引起一些问题。
UPDATE EMP_VIEW2 SET DEPT=20 WHERE DEPT=10;
这个语句的结果是该视图现在不包含任何记录,因为部门 10 不再有雇员了。