35、SQL视图更新与数据字典详解

SQL视图更新与数据字典详解

1. 视图更新概述

更新视图实际上就是更新其底层的表,但在某些情况下,通过视图进行更改是不可能的。以下是几种常见的情况:
- 缺少必填列 :如果视图基于单个表构建,且排除了没有默认值的必填列,则无法仅通过该视图插入行。例如, people 表的视图排除了必填的 born 列,就不能向该视图插入行并期望在 people 表中检索到。
- 包含聚合函数 :包含聚合函数的视图,如返回每个国家电影数量的视图,很难有意义地更改底层数据。直接通过该视图插入新国家和电影数量,或更新聚合值都是不可能的,因为聚合会丢失信息,而更改表需要更详细的信息。
- 包含计算列或函数调用结果 :如果视图包含计算列或函数调用的结果,可能无法从视图显示的内容重建原始数据。例如, people 表的视图使用 full_name() 函数将名字和姓氏显示为单列,无法确定如何将 Tommy Lee Jones 插入该列。

即使视图相对完整地呈现了原始列,更新问题也不简单。例如,有如下视图:

create view vmovies
as select m.movieid,
          m.title,
          m.year_released,
          c.country_name
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值