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)视 ...
随机推荐
- 【Lua】Lua基础语法
1 Lua 简介 Lua 是一个小巧的脚本语言,用标准C语言编写而成,由巴西里约热内卢天主教大学的 Roberto Ierusalimschy.Waldemar Celes 和 Luiz Henr ...
- win32- copyfile的使用
#include <stdio.h> #include <stdlib.h> #include <windows.h> #include <tchar.h&g ...
- 如何保证消息顺序执行(Rabbitmq/kafka)
转载: https://www.cnblogs.com/-wenli/p/13047059.html https://www.jianshu.com/p/02fdcb9e8784
- .NET周刊【2月第3期 2024-02-25】
国内文章 4.1k Star!全面的C#/.NET/.NET Core学习.工作.面试指南 https://www.cnblogs.com/Can-daydayup/p/18027117 DotNet ...
- Celery异步处理任务时遇到的错误ValueError: not enough values to unpack (expected 3, got 0)
开启celery异步,终端命令: celery -A celery_tasks.main worker -l info 如果上面运行后,发送短信码的时候没有报如下错误: ValueError: not ...
- vue 项目npm run dev(启动)时报错The service was stopped
vue项目yarn upgrade后vite build报错,如何项目也运行不起来了. 报错截图: 解决办法: 删除node_modules文件夹,然后执行yarn install重新生成心的node ...
- python selenium list index out of range
常见错误原因 常见错误原因 其他错误原因 场景 使用selenium循环打开并跳转到新的网页,然后关闭新的窗口,然后回到原来窗口,这时候获取list中的值,报错: list index out of ...
- 常用 Maven 插件介绍
我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...
- 【Azure 应用服务】Azure Function Python函数中,如何获取Event Hub Trigger的消息Event所属于的PartitionID呢?
问题描述 在通过Azure Function消费Event Hub中的消息时,我们从Function 的 Trigger Details 日志中,可以获得当前Funciton中处理的消息是哪一个分区( ...
- python中json.dumps() 与json.dump(),json.load()与json.loads()区别?
json.dumps() 将 Python 对象转换为 JSON 字符串,并返回该字符串.而 json.dump() 将 Python 对象转换为 JSON 字符串,并将该字符串写入文件. json. ...