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. 第一百一十六篇: JavaScript理解对象

    好家伙,本篇为<JS高级程序设计>第八章"对象.类与面向对象编程"学习笔记   1.关于对象 ECMA-262将对象定义为一组属性的无序集合.严格来说,这意味着对象就是 ...

  2. 【Azure Function App】解决Function App For Container 遇见ServiceUnavailable的异常

    问题描述 在使用Terraform创建Function App 后,部署函数时候遇见 ServiceUnavailable (Bad Request -- Encountered an error ( ...

  3. 【Azure 服务总线】有何办法可以把原来老环境的Azure Service Bus 配置快速复制到新环境配置,而且原环境不删除

    问题描述 有何办法可以把原来老环境的Azure Service Bus 配置快速复制到新环境配置,而且原环境不删除 问题解答 在通常的做法中,是可以在Service Bus所在的资源组中,通过&quo ...

  4. 【Azure 应用服务】Azure Function (PowerShell) 执行时报错 "out of memory"

    问题描述 在Azure Function App服务中,创建一个PowerShell脚本的函数,遇见了OOM(Out Of Memory)的异常报错: 2022-01-10T07:44:37 Welc ...

  5. 【Azure 应用服务】App Server 部署后,Docker报错,找不到8080端口

    问题描述 App Service for Container.  Docker Image 推送到ACR(向 Azure 容器注册表), 配置App Service并部署成功了.查看Docker日志( ...

  6. Github无法读取远程仓库

    主页 个人微信公众号:密码应用技术实战 个人博客园首页:https://www.cnblogs.com/informatics/ Git无法访问 今早起来访问Github炸了,Git不能用了,提示: ...

  7. OpenCV开发笔记(七十七):相机标定(二):通过棋盘标定计算相机内参矩阵矫正畸变摄像头图像

    前言   通过相机图片可以识别出棋盘角点了,这时候我们需要通过角点去计算相机内参矩阵,通过上篇得知畸变的原理,所以我们尽可能要全方位都能获取标定图片,全方位意思是提供的多张图综合起来基本覆盖了相机所有 ...

  8. Spring多线程事务处理

    一.背景 本文主要介绍了spring多线程事务的解决方案,心急的可以跳过上面的理论介绍分析部分直接看最终解决方案. 在我们日常的业务活动中,经常会出现大规模的修改插入操作,比如在3.0的活动赛事创建, ...

  9. rst文件查看(Sphinx)

    reStructuredText ( RST . ReST 或 reST )是一种用于文本数据的文件格式,主要用于 Python 编程语言社区的技术文档. 在下载了别人的Python源文件里面有rst ...

  10. npm 添加 淘宝代理

    npm config set registry https://registry.npm.taobao.org