KingbaseES例程_重建物化视图的源表

概述

数据结构的修改步骤,数据表先删除,然后创建。如果数据表是物化视图的源表,则提示依赖关系。

Oracle的实施

  1. 创建数据表和物化视图

    create table tab_data (id int,c1 int );
    insert into tab_data values (1,1);
    create materialized view mv_data as select * from tab_data;
    call dbms_mview.refresh('mv_data', 'C') ;
    select * from mv_data;
    ID C1
    ---------- ----------
    1 1
  2. 删除数据表

    删除数据表,物化视图不能刷新,可以读取物化视图的数据。

    drop table tab_data purge ;
    
    call dbms_mview.refresh('mv_data', 'C')  ;
    ERROR at line 1:
    ORA-00942: table or view does not exist select * from mv_data;
    ID C1
    ---------- ----------
    1 1
  3. 重建数据表

    create table tab_data (id int,c1 int );
    insert into tab_data values (2,2);
  4. 刷新物化视图

    call dbms_mview.refresh('mv_data', 'C')  ;
    select * from mv_data;
    ID C1
    ---------- ----------
    2 2

KingbaseES实施

  1. 创建数据表和物化视图

    create table tab_data (id int,c1 int );
    insert into tab_data values (1,1);
    create materialized view mv_data as select * from tab_data;
    refresh materialized view mv_data;
    select * from mv_data;
    id | c1
    ----+----
    1 | 1
    (1 行记录)
  2. 删除数据表

    drop table tab_data ;
    错误: 无法删除 表 tab_data 因为有其它对象倚赖它
    描述: 物化视图 mv_data 倚赖于 表 tab_data
    提示: 使用 DROP .. CASCADE 把倚赖对象一并删除.
  3. 重建数据表和物化视图

    数据表重命名,视图定义自动修改。创建新的物化视图。

    alter table tab_data rename to tab_data_o;
    create table tab_data (id int,c1 int );
    insert into tab_data values (2, 2;
    create materialized view mv_data_n as select * from tab_data;
  4. 物化视图重命名

    do
    $$
    begin
    alter materialized view mv_data rename to mv_data_o;
    alter materialized view mv_data_n rename to mv_data;
    end;
    $$
    select * from mv_data;
    id | c1
    ----+----
    2 | 2
    (1 行记录)

视图定义使用UDF

  1. 视图定义使用UDF

    create or replace function f_data()
    returns table ( id int, c1 int )
    as
    $$ select id,c1 from tab_data; $$
    language sql; create materialized view mv_data as
    select *
    from f_data();
  2. 删除数据表,物化视图不能刷新,可以读取数据

    drop table tab_data;
    
    refresh materialized view mv_data;
    错误: 关系 "tab_data" 不存在 在位置:SQL 函数 "f_data" 在启动的时候 select * from mv_data;
    id | c1
    ----+----
    1 | 1
    (1 行记录)
  3. 重建数据表

    create table tab_data (id int,c1 int );
    insert into tab_data values (2,2);
  4. 刷新物化视图

    refresh materialized view mv_data;
    
    select * from mv_data;
    id | c1
    ----+----
    2 | 2
    (1 行记录)

总结

  • 物化视图的源表,可以在线修改数据表结构,但不能删除对象,而保留物化视图。
  • 视图定义使用UDF,可以实现Oracle模式的效果。

KingbaseES 物化视图与源表的依赖关系的更多相关文章

  1. Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步

    摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 ...

  2. Oracle物化视图的用法与总结

    物化视图(material view)是什么? 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表. 物化视图存储基于远程表的数据,也可以称为快照(类 ...

  3. Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建

    目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...

  4. (003)每日SQL学习:普通视图和物化视图

    关于这一点一直就是很懵懂的状态,今天特意网上查了一下资料,以下摘抄网上比较好的答案.以作记录. 普通视图和物化视图的区别答曰:普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本 ...

  5. ClickHouse性能优化?试试物化视图

    一.前言 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS):目前我们使用CH作为实时数仓用于统计分析,在做性能优化的时候使用了 物化视图 这一特性作为优化手段,本文主 ...

  6. calcite物化视图详解

    概述 物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图. 当用户查询的时候,原先创建的物化视图会注册到优化器中,用户的查询命中物化 ...

  7. Oracle之物化视图

    来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...

  8. 《oracle每天一练》Oracle之物化视图

    相关帖子思考和跟踪 本文转自Ronger 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实 ...

  9. 物化视图刷新慢--有可能是mv log被多个mv使用造成的

    同事说物化视图刷新慢,经检生产环境,发现部分物化视图刷新慢的原因是:由于同一个物化视图日志(mv log)被多个物化视图(mv)使用,不同的物化视图(mv)使用不同的刷新间隔,导致物化视图日志(mv ...

  10. 【转】Oracle之物化视图

    原文地址:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 物化视图是一种特殊的物理表,“物化”(Materialized)视 ...

随机推荐

  1. 【Unity3D】程序纹理简单应用

    1 几何纹理应用 ​ 本文所有案例的完整资源详见→Unity3D程序纹理简单应用. 1.1 边框 ​ 1)边框子图 ​ Border.shadersubgraph ​ 说明:Any 节点用于判断输入向 ...

  2. 使用JS保存数据

    1 保存到text中 demo1.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

  3. 快速傅里叶变换(FFT)和小波分析在信号处理上的应用

    1前言 1.1傅里叶变换 函数f(t)为一元连续函数,其傅里叶变换定义为: F(w)的傅里叶逆变换定义为: 其中,i为虚数单位.由欧拉公式: 任意绝对可积的连续函数f(t),都可以用三角函数表示,由于 ...

  4. PHP验证码识别实例

    PHP验证码识别实例 PHP验证码识别实例,识别的过程包括对图像的二值化.降噪.补偿.切割.倾斜矫正.建库.匹配,最后会提供实例代码,能够直接运行识别. 简述 要识别的验证码相对比较简单,没有粘连字符 ...

  5. Idea 本人开发常用几款插件

    先说 idea装插件 首先,进入插件安装界面: 标注 1:显示 IntelliJ IDEA 的插件分类, All plugins:显示 IntelliJ IDEA 支持的所有插件: Enabled:显 ...

  6. [Android逆向]Exposed 破解 jwxdxnx02.apk

    使用exposed 遇到了一些坑,这里记录一下 源码: package com.example.exposedlesson01; import de.robv.android.xposed.IXpos ...

  7. Golang使用Gin-swagger搭建api文档

    前提是安装好了go环境与vscode环境 并配置过了gin 项目结构 1.先安装swaggo依赖包 //1 go get "github.com/swaggo/files" //2 ...

  8. 本机复制的内容粘贴不到VMware虚拟机里面的解决办法

    分析 VMware正确安装完linux虚拟机之后,这里以Ubuntu为例,如果你使用的默认配置,正常情况下就可以复制.粘贴和拖拽内容的,双方向都是支持的.如果不能复制和拖拽一般是vmware tool ...

  9. 【复盘#01】myh笔试

    存疑 1.http响应体中版本和缓存是哪个字段(Etga) http和https的区别 2.mysql同一个表中有多个相同字段但搜索的时候只搜得出某一个,要怎么修改(inner ..) mysql如何 ...

  10. 使用 maven 的 `wagon-maven-plugin`插件 快速部署 到不同的 环境

    profile 在pom文件中配置 开发和测试环境的 profile信息, <profiles> <profile> <!-- 开发环境 --> <id> ...