哪些视图上不能进行DML操作
2012-09-22 11:05
253 查看
视图中使用DML的规定
a) 可以在简单视图中执行 DML操作
b) 当视图定义中包含以下元素之一时不能使用delete:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列 DUAL伪表
c) 当视图定义中包含以下元素之一时不能使用update:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列
v. 列的定义为表达式
d) 当视图定义中包含以下元素之一时不能使用insert:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列
v. 列的定义为表达式
vi. 中非空的列在视图定义中未包括
WITH CHECK OPTION 子句
a) 使用 WITH CHECKOPTION 子句确保DML只能在特定的范围内执行
[sql] view
plaincopy
CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM employees
WHERE department_id = 20
WITH CHECK OPTIONCONSTRAINT empvu20_ck ;
View created.
b) 任何违反WITH CHECKOPTION 约束的请求都会失败
a) 可以在简单视图中执行 DML操作
b) 当视图定义中包含以下元素之一时不能使用delete:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列 DUAL伪表
c) 当视图定义中包含以下元素之一时不能使用update:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列
v. 列的定义为表达式
d) 当视图定义中包含以下元素之一时不能使用insert:
i. 组函数
ii. GROUP BY子句
iii. DISTINCT关键字
iv. ROWNUM 伪列
v. 列的定义为表达式
vi. 中非空的列在视图定义中未包括
WITH CHECK OPTION 子句
a) 使用 WITH CHECKOPTION 子句确保DML只能在特定的范围内执行
[sql] view
plaincopy
CREATE OR REPLACE VIEW empvu20
AS SELECT *
FROM employees
WHERE department_id = 20
WITH CHECK OPTIONCONSTRAINT empvu20_ck ;
View created.
b) 任何违反WITH CHECKOPTION 约束的请求都会失败
相关文章推荐
- 视图+视图定义+创建视图+视图的表结构+创建视图的语句+查看视图哪些列是可以进行DML操作
- 什么是Oracle Key-Preserved Table和什么样的视图可以进行DML操作
- 允许进行DML操作的视图条件
- 对视图进行 DML 操作
- 视图进行DML操作的一些限制条件
- Oracle视图可以进行DML操作的条件
- 关于SubSonic3.0插件使用Json反序列化获得的实体进行更新操作时,只能执行添加而不能执行修改(编辑)操作的处理
- aaa8 ZBrush怎么进行视图操作
- Oracle-31-对视图DML操作
- MySQL深入01-SQL语言-数据字典-服务器变量-数据操作DML-视图
- 同一个程序在命令行下,编译为什么报错???难道命令行下不能进行导入包的操作???
- 使用DDL,DML语言对数据库进行基本操作。
- 在视图区进行操作时,如何避免闪烁!
- CString 类型的变量不能进行加运算操作
- 弹出层时使弹出层的页面不能进行操作的实现(模态窗体)1
- 获取某一个view所在视图控制器,进而可以进行跳转等操作
- [转]获得了Root权限后,adb shell有时仍然不能对系统文件夹进行写操作
- 视图进行更新操作:insert和update
- mysql触发器不能进行修改操作的总结
- [RS]2000下开发的DeliveryExtension不能直接对Excel文件进行操作!