美文网首页
SQL数据库视图什么情况下可以更新

SQL数据库视图什么情况下可以更新

作者: 觉释 | 来源:发表于2020-12-02 08:50 被阅读0次

更新视图有以下三条规则:

1、 若视图是基于多个表使用联接操作而导出的,那么对这个视图执行更新操作时,每次只能影响其中的一个表。
2、 若视图导出时包含有分组和聚合操作,则不允许对这个视图执行更新操作。
3、 若视图是从一个表经选择、投影而导出的,并在视图中包含了表的主键字或某个候选键,这类视图称为‘行列子集视图’。对这类视图可执行更新操作。

视图只有满足下列条件才可更新:

1、select语句在选择列表中没有聚合函数,也不包含TOP,GROUP BY,UNION(除非视图是分区视图)或DISTINCT子句。聚合函数可以用在FROM子句的子查询中,只要不修改函数返回的值。
2、select语句的选择列表中没有派生列。派生列是由任何非简单列表达式(使用函数、加法或减法运算符等)所构成的结果集列。
3、select语句中的FROM子句至少引用一个表。select语句不能只包含非表格格式的表达式(即不是从表派生出的表达式)。
4、INSERT,UPDATE和DELETE语句在引用可更新视图之前,也必须如上述条件指定的那样满足某些限制条件。只有当视图可更新,并且所编写的UPDATE或INSERT语句只修改视图的FROM子句引用的一个基表中的数据时,UPDATE和INSERT语句才能引用视图。
  只有当视图在其FROM子句中只引用一个表时,DELETE语句才能引用可更新的视图。

视图在包含以下结构时不可以更新

1、含有集合运算符:union,union all,intersect
2、distinct关键字
3、group by,order by,connect by和start with
4、子查询
5、分组函数
6、需要更新的列不是视图定义的
7、有连接查询
8、违反基本表的约束

相关文章

  • SQL数据库视图什么情况下可以更新

    更新视图有以下三条规则: 1、 若视图是基于多个表使用联接操作而导出的,那么对这个视图执行更新操作时,每次只能影响...

  • 数据库基础知识整理-SQL视图

    数据库基础知识整理-SQL视图 视图 在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。 视图包含行和...

  • SQL视图

    SQL 视图(Views)视图是可视化的表。 讲解如何创建、更新和删除视图。 SQL CREATE VIEW 语句...

  • MySQL之视图

    SQL语言之视图 前言 本章我们将学习MySQL中的视图,视图是数据库中的重要组件,本文将从视图是什么,视图的作用...

  • SQL 简易教程 下

    SQL 视图(Views) 视图是可视化的表。 本章讲解如何创建、更新和删除视图。 在 SQL 中,视图是基于 S...

  • MySQL面试题 | 附答案解析(十一)

    视图 1. 为什么要使用视图?什么是视图? 为了提高复杂SQL语句的复用性和表操作的安全性,MySQL数据库管理系...

  • 更新TableView和CollectionView的状态

    __ TableView __ __ CollectionView __ 借此可以实现在不刷新视图的情况下,更新视...

  • 达梦错误码解释

    在数据库中使用sql也可以查到相关错误码的解释,查询一个视图即可

  • Spring使用JDBCTemplate

    使用JDBCTemplate更新数据库 使用sql语句和参数更新数据库(update) 批量更新数据库(batch...

  • 视图预制 - 草稿

    除了视图预制还有路由模型预制,模型数据库sql 预制

网友评论

      本文标题:SQL数据库视图什么情况下可以更新

      本文链接:https://www.haomeiwen.com/subject/lhkywktx.html