zoukankan      html  css  js  c++  java
  • 数据库之视图更新

    视图定义---视图是从一个 或多个表(或视图) 导出的虚拟表 ,视图是数据库系统提供给用户以多种角度观察数据的重要机制

    视图是一个虚表,不是实际存储的数据,更新视图是指更新视图的基本表,但不是所有的视图都能够进行更新,所以视图可以分为可更新视图不可更新视图

    可更新视图有三种:

    (1).同时满足以下条件

    a. 创建时select中没有聚合函数,也没有top,groupby,union子句及Distinct关键字;

    b.创建视图的select 不包含从基本表中通过计算所得到的列;

    c. from子句中至少有一个基本表;

    总结就是不能包含基本表中不存在的数据

    (2). 可更新的分区视图

    (3). 通过Instead of 触发器创建的可更新视图

    更新视图注意事项:

    Insert :插入数据到可更新视图时应该注意,如果视图由多个基本表组成则不能使用Insert插入数据到视图

    Update: 如果视图依赖多个基本表,一次的更新操作 只能变动一个基本表数据,不能在一次update中同时更新两个表的内容

    Delete: 如果包含多个基本表(不包括分区表),则不能使用delete 删除视图的数据

    PS:视图不能创建索引;不能把规则,默认值和触发器与视图相关联

    另外创建视图时候如果添加了 With Check Option  则更新视图时候即增,删,改时候,系统首先会检查你的改变是否满足定义时候的条件(where),如果不满足则拒绝执行,比如你视图查的是所有计算机类别的书,但是插入,修改时候却更新为了金融类 的书时候是不能执行的。

  • 相关阅读:
    【转】做好测试计划和测试用例工作的关键
    【转】RESTful Web Services初探
    最快排序和搜索算法的最简代码实现_转
    排序算法
    libevent简述
    linux异步IO--aio
    长志气戒傲气 必须时刻保持冷静
    LACP-链路聚合
    AM335x移植linux内核_转
    4种用于构建嵌入式linux系统的工具_转
  • 原文地址:https://www.cnblogs.com/Fusheng/p/5196264.html
Copyright © 2011-2022 走看看