IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 金仓数据库 KingbaseES 插件force_view -> 正文阅读

[大数据]金仓数据库 KingbaseES 插件force_view

目录

1. force_view介绍

2. force_view的产生

3. force_view的使用重新编译后依然无效:

4. 有效视图的产生创建一个有效视图:

5. 有效视图的使用

6. 视图状态的维护视图状态的维护


1. force_view介绍


force_view是视图的无效状态,而视图是基于SQL语句结果集的可视化的表,其内容由查询定义。视图有无效和有效两种状态。使用一个无效视图(force_view)时候,若该无效视图经过重新编译依然无效,那么将会抛出错误信息。


2. force_view的产生


创建一个无效视图:

使用create force view创建一个无效视图。创建force view时若依赖检查成功,则创建为一个有效视图,否则创建为一个无效视图。这里依赖检查就是视图编译,视图编译阶段的检查主要包括:依赖对象是否存在、创建者是否有依赖对象的select权限等。
create force view vtab as select * from tab; --tab不存在
WARNING: View created with compilation errors
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
----------------
{status=false}

有效视图变成无效视图:

删除视图依赖,改变视图依赖列等会使被依赖视图变成无效状态。
create or replace也可能会将有效视图替换为无效视图。
create table tab(a int);
CREATE TABLE
create force view vtab as select * from tab;
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
------------

drop table tab;
NOTICE: view vtab depends on table tab
DROP TABLE
select reloptions from sys_class where relname = 'vtab';
reloptions
----------------
{status=false}

3. force_view的使用重新编译后依然无效:

使用(查询,插入,更新等)一个无效视图时,会重新编译该视图。若编译失败视图依然无效,抛出错误。
create force view vtab as select * from tab; --tab不存在
WARNING: View created with compilation errors
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
----------------
{status=false}
select * from vtab;
ERROR: view "vtab" is still invalid after recompiling

重新编译后有效:

使用一个无效视图时候,会重新编译该视图。若编译成功,视图有效,按用户指令操作该视图。
create force view vtab as select * from tab; --tab不存在
WARNING: View created with compilation errors
CREATE VIEW select reloptions from sys_class where relname = 'vtab';
reloptions
----------------
{status=false}
create table tab(a int);
CREATE TABLE
select * from vtab;
a
---
(0 rows)
select reloptions from sys_class where relname = 'vtab';
reloptions
---------------
{status=true}


4. 有效视图的产生创建一个有效视图:

创建视图时候若依赖检查成功则创建为一个有效视图。创建视图 (不带force ),依赖检查失败,视图创建会失败。
create table tab(a int);
CREATE TABLE
create force view vtab as select * from tab;
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
------------

create view vtab1 as select * from tab1;
ERROR: relation "tab1" does not exist
LINE 1: create view vtab1 as select * from tab1;

无效视图变成有效视图:

使用一个无效视图,若视图重新编译成功,视图变成有效视图。
create force view vtab as select * from tab;
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
----------------
{status=false}
create table tab(a int);
CREATE TABLE
select * from vtab;
a
---
(0 rows)
select reloptions from sys_class where relname = 'vtab';
reloptions
------------


5. 有效视图的使用

create table tab(a int);
CREATE TABLE
insert into tab values(3);
INSERT 0 1
create view vtab as select * from tab;
CREATE VIEW
select reloptions from sys_class where relname = 'vtab';
reloptions
------------

select * from vtab;
a
---
3


6. 视图状态的维护视图状态的维护

1、删除或更改视图依赖(列、表等),此次更改会影响被依赖视图,那么所有被依赖视图会被更新为无效状态
create table tab(a int);
CREATE TABLE
create view vtab as select * from tab;
CREATE VIEW
create view vvtab as select * from vtab;
CREATE VIEW
select relname, reloptions from sys_class where relname in ('vtab', 'vvtab');
relname | reloptions
---------+------------
vtab |
vvtab |
(2 rows)
drop table tab;
NOTICE: there are(is) 2 objects that depend(s) on it
DETAIL: view vtab depends on table tab
view vvtab depends on view vtab
DROP TABLE
select relname, reloptions from sys_class where relname in ('vtab', 'vvtab');
relname | reloptions
---------+----------------
vtab | {status=false}
vvtab | {status=false}
(2 rows)
2、使用一个无效视图的时候,会重新编译视图。若视图编译后有效,执行用户指令;若视图编译后依然无效,抛出错误。
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:08:56  更:2022-06-29 19:11:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/23 15:11:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码