您的位置:首页 > 数据库

哪些视图上不能进行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 约束的请求都会失败
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  insert delete sql c