KingbaseES 物化视图与源表的依赖关系
KingbaseES例程_重建物化视图的源表
概述
数据结构的修改步骤,数据表先删除,然后创建。如果数据表是物化视图的源表,则提示依赖关系。
Oracle的实施
创建数据表和物化视图
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删除数据表
删除数据表,物化视图不能刷新,可以读取物化视图的数据。
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重建数据表
create table tab_data (id int,c1 int );
insert into tab_data values (2,2);刷新物化视图
call dbms_mview.refresh('mv_data', 'C') ;
select * from mv_data;
ID C1
---------- ----------
2 2
KingbaseES实施
创建数据表和物化视图
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 行记录)删除数据表
drop table tab_data ;
错误: 无法删除 表 tab_data 因为有其它对象倚赖它
描述: 物化视图 mv_data 倚赖于 表 tab_data
提示: 使用 DROP .. CASCADE 把倚赖对象一并删除.重建数据表和物化视图
数据表重命名,视图定义自动修改。创建新的物化视图。
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;物化视图重命名
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
视图定义使用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();
删除数据表,物化视图不能刷新,可以读取数据
drop table tab_data; refresh materialized view mv_data;
错误: 关系 "tab_data" 不存在 在位置:SQL 函数 "f_data" 在启动的时候 select * from mv_data;
id | c1
----+----
1 | 1
(1 行记录)重建数据表
create table tab_data (id int,c1 int );
insert into tab_data values (2,2);刷新物化视图
refresh materialized view mv_data; select * from mv_data;
id | c1
----+----
2 | 2
(1 行记录)
总结
- 物化视图的源表,可以在线修改数据表结构,但不能删除对象,而保留物化视图。
- 视图定义使用UDF,可以实现Oracle模式的效果。
KingbaseES 物化视图与源表的依赖关系的更多相关文章
- Oracle 10g通过创建物化视图实现不同数据库间表级别的数据同步
摘自:http://blog.csdn.net/javaee_sunny/article/details/53439980 目录(?)[-] Oracle 10g 物化视图语法如下 实例演示 主要步骤 ...
- Oracle物化视图的用法与总结
物化视图(material view)是什么? 物化视图是包括一个查询结果的数据库对象,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表. 物化视图存储基于远程表的数据,也可以称为快照(类 ...
- Oracle远程数据建物化视图(materialized)创建简单记录,以及DBLINK的创建
目的:实现远程数据库访问及其相应表的定时同步 一.远程数据库dblink的创建 select * from dba_db_links; select * from user_sys_privs;--查 ...
- (003)每日SQL学习:普通视图和物化视图
关于这一点一直就是很懵懂的状态,今天特意网上查了一下资料,以下摘抄网上比较好的答案.以作记录. 普通视图和物化视图的区别答曰:普通视图和物化视图根本就不是一个东西,说区别都是硬拼到一起的,首先明白基本 ...
- ClickHouse性能优化?试试物化视图
一.前言 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS):目前我们使用CH作为实时数仓用于统计分析,在做性能优化的时候使用了 物化视图 这一特性作为优化手段,本文主 ...
- calcite物化视图详解
概述 物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图. 当用户查询的时候,原先创建的物化视图会注册到优化器中,用户的查询命中物化 ...
- Oracle之物化视图
来源于:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 近期根据项目业务需要对oracle的物化视图有所接触,在网上搜寻关于 ...
- 《oracle每天一练》Oracle之物化视图
相关帖子思考和跟踪 本文转自Ronger 物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实 ...
- 物化视图刷新慢--有可能是mv log被多个mv使用造成的
同事说物化视图刷新慢,经检生产环境,发现部分物化视图刷新慢的原因是:由于同一个物化视图日志(mv log)被多个物化视图(mv)使用,不同的物化视图(mv)使用不同的刷新间隔,导致物化视图日志(mv ...
- 【转】Oracle之物化视图
原文地址:http://www.cnblogs.com/Ronger/archive/2012/03/28/2420962.html 物化视图是一种特殊的物理表,“物化”(Materialized)视 ...
随机推荐
- 【Unity3D】地形Terrain
1 前言 Terrain 是 Unity3D 提供的用于绘制地形的游戏对象,可以在其上绘制山地.江海.池塘.草树等. 用户可以通过[GameObject → 3D Object → Terra ...
- Java使用正则表达式判断字符串中是否包含某子字符串
需求: 给定一个字符串s,判断当s中包含"tree fiddy"或"3.50"或"three thirty"子字符串返回true,否则返回f ...
- pigz命令
多线程的解压缩文件 语法格式:pigz 参数 文件名 常用参数 -- 显示压缩后的内容 -p 设置线程数 -b 设置文件数据块大小 -q 静默执行模式 -d 将压缩文件恢复为原始文件 -r 递归处理所 ...
- ProtoBuffer-nanopb介绍
目录 一.需求 二.环境 三.相关概念 3.1 protocol buffer介绍 3.2 nanopb(支持C语言) 3.3 proto文件 四.proto基本语法 4.1 proto文件的定义 4 ...
- SQL Server 连接数据库报错 (ObjectExplorer)
报错信息 无法访问数据库 ReportServer. (ObjectExplorer) 具体错误信息: 程序位置: 在 Microsoft.SqlServer.Management.UI.VSInte ...
- 【webserver 前置知识 03】Linux网络编程入门其二,I/O多路复用
I/O多路复用 I/O多路复用使得程序能够同时监听多个文件描述符 LInux下实现I/O多路复用的系统调用主要由select.poll以及epoll(常问,要会自己写出来) 例子 阻塞等待 阻塞等待可 ...
- 【Java复健指南12】OOP高级03-抽象类与接口
抽象类 引出 问题: 父类方法有时候具有不确定性 小结: 当父类的某些方法,需要声明,但是又不确定如何实现 时,可以将其声明为抽象方法,那么这个类就是抽象类 例子: public class Ab ...
- 华为云峰会2024,GaussDB扬帆出海,给世界一个更优选择
本文分享自华为云社区<华为云峰会2024,GaussDB扬帆出海,给世界一个更优选择>,作者:GaussDB 数据库. 2024年2月26~29日,由GSM协会主办的"2024年 ...
- js之以面向对象的形式书写贪吃蛇
此代码存在一定的小bug,当蛇出边界之后存在一定的小问题 分析贪吃蛇功能需求: 1.食物 (1)每次生成一个,位置随意但不可超出规定范围 (2)每次蛇吃到食物之后,前一个食物消失同时新的食物又生成 ( ...
- 【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
问题描述 App Service中,如何通过 Application Setting 来配置 Key Vault中的值呢? 问题解答 首先,App Service服务可以直接通过引用的方式,无需代码的 ...