视图可以修改数据么?有的改就能改。

来源:互联网 发布:朱宸慧的淘宝店 编辑:程序博客网 时间:2024/04/30 07:16

我的印象一直以为是不可以修改,查了查,原来在一定的前提下,是可以的,无论是单个表还是多表关联,只要能区分映射‘实体’,否则,可以使用触发器。


视图中使用DML的规定:

l可以在简单视图中执行DML 操作
l当视图定义中包含以下元素之一时不能使用delete:
•组函数
•GROUPBY子句
•DISTINCT 关键字
ROWNUM 伪列


当视图定义中包含以下元素之一时不能使用update :

l组函数
lGROUP BY子句
lDISTINCT 关键字
lROWNUM 伪列
l列的定义为表达式

当视图定义中包含以下元素之一时不能使用insert :

l组函数
lGROUP BY 子句
lDISTINCT 关键字
lROWNUM 伪列
l列的定义为表达式
l表中非空的列在视图定义中未包括

屏蔽 DML 操作:

l可以使用WITH READ ONLY 选项屏蔽对视图的DML 操作
l任何DML 操作都会返回一个Oracle server 错误