场景一:
某日被问,视图可以被更新吗?什么情况下可以被更新?
说明:
所谓视图的更新,包括增删改3中修改操作;
解答:
聪明人一般会做肯定回答,可惜我当时傻帽了一下。可更新的视图必须足够简单,视图的每条数据都能追溯到原表的数据:
1、不包含distinct
2、from源表单一
3、where不能包含子查询
4、查询不能包含group by 或having子句
5、选择列表不能包含表达式、计算字段或字段函数
不过有些DBMS要求比较松,DB2允许对包含计算的视图执行delete操作,并允许对计算字段以外的字段进行更新。
某日被问,视图可以被更新吗?什么情况下可以被更新?
说明:
所谓视图的更新,包括增删改3中修改操作;
解答:
聪明人一般会做肯定回答,可惜我当时傻帽了一下。可更新的视图必须足够简单,视图的每条数据都能追溯到原表的数据:
1、不包含distinct
2、from源表单一
3、where不能包含子查询
4、查询不能包含group by 或having子句
5、选择列表不能包含表达式、计算字段或字段函数
不过有些DBMS要求比较松,DB2允许对包含计算的视图执行delete操作,并允许对计算字段以外的字段进行更新。