Q:视图上只能 查询,不能增、删、改? A:no
部分视图上是可以执行DML操作,但是必须遵循一定原则,如下
1.在简单视图上可以DML
简单视图:只从一个表获取数据;不包含函数和数组。
2.如果视图中包含以下内容则不能删除数据行
a.group函数
b.group by子句
c.distinct关键字
3.可以通过视图修改基表中数据,只要试图中不出现以下情况
视图中包含group函数,group by子句,distinct 关键字
使用表达式定义的列
rownum伪列
4.可以通过视图向基表中插入数据,只要视图中不出现以下情况
视图中包含group函数,group by子句,distinct 关键字
使用表达式定义的列
rownum伪列
基表中未在视图中选择的其他列定义为非空并且没有默认值
如果不想在视图上执行DML操作,只要在创建视图的时候加上with read only