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】程序纹理简单应用
1 几何纹理应用 本文所有案例的完整资源详见→Unity3D程序纹理简单应用. 1.1 边框 1)边框子图 Border.shadersubgraph 说明:Any 节点用于判断输入向 ...
- 使用JS保存数据
1 保存到text中 demo1.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...
- 快速傅里叶变换(FFT)和小波分析在信号处理上的应用
1前言 1.1傅里叶变换 函数f(t)为一元连续函数,其傅里叶变换定义为: F(w)的傅里叶逆变换定义为: 其中,i为虚数单位.由欧拉公式: 任意绝对可积的连续函数f(t),都可以用三角函数表示,由于 ...
- PHP验证码识别实例
PHP验证码识别实例 PHP验证码识别实例,识别的过程包括对图像的二值化.降噪.补偿.切割.倾斜矫正.建库.匹配,最后会提供实例代码,能够直接运行识别. 简述 要识别的验证码相对比较简单,没有粘连字符 ...
- Idea 本人开发常用几款插件
先说 idea装插件 首先,进入插件安装界面: 标注 1:显示 IntelliJ IDEA 的插件分类, All plugins:显示 IntelliJ IDEA 支持的所有插件: Enabled:显 ...
- [Android逆向]Exposed 破解 jwxdxnx02.apk
使用exposed 遇到了一些坑,这里记录一下 源码: package com.example.exposedlesson01; import de.robv.android.xposed.IXpos ...
- Golang使用Gin-swagger搭建api文档
前提是安装好了go环境与vscode环境 并配置过了gin 项目结构 1.先安装swaggo依赖包 //1 go get "github.com/swaggo/files" //2 ...
- 本机复制的内容粘贴不到VMware虚拟机里面的解决办法
分析 VMware正确安装完linux虚拟机之后,这里以Ubuntu为例,如果你使用的默认配置,正常情况下就可以复制.粘贴和拖拽内容的,双方向都是支持的.如果不能复制和拖拽一般是vmware tool ...
- 【复盘#01】myh笔试
存疑 1.http响应体中版本和缓存是哪个字段(Etga) http和https的区别 2.mysql同一个表中有多个相同字段但搜索的时候只搜得出某一个,要怎么修改(inner ..) mysql如何 ...
- 使用 maven 的 `wagon-maven-plugin`插件 快速部署 到不同的 环境
profile 在pom文件中配置 开发和测试环境的 profile信息, <profiles> <profile> <!-- 开发环境 --> <id> ...