sql视图的更新限制

基本关系如果改变,必须立即反映到设计的视图上。

但是通过视图去更新则必须注意以下条件:

1、如果视图有一个基本关系的简单查询生成,而且它还包含了基本关系中的主关键字或是候选关键字,则可以通过这个视图进行更新操作。

2、不允许对涉及到多个基本关系的视图进行更新。

3、如果视图的生成中涉及到聚集或是分组操作,则不允许通过这个视图进行更新。 

 

ISO标准给出的视图的可更新充要条件为:

1、没有指定DISTINCT,即重复元组未从查询结果中消除;

2、定义查询的SELECT列表中的每个元素均为列名(而不是常量,表达式或聚合函数),且列名出现不能多于一次;

3、FROM子句只能指定一个表,即视图必须有一个源表且用户有请求该表的权限。如果源表本身就是一个视图,那么视图必须满足这些条件。因此,排除了基于连接、并(UNION)、交(INTERSECT)或差(EXCEPT)操作的所有视图;

4、where子句不能包含任何引用了FROM子句的表的嵌套SELECT操作。

5、定义查询不能有GROUP BY或HAVING子句。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值