DB2物化表

DB2物化查询表(MQT)是DB2数据库中一类特殊的表

物化表和视图的区别

物化表是一个查询结果集,视图是一个SQL语句。

以下是一个简单例子(说明物化表)

1.创建表,插入测试数据

----创建表
CREATE TABLE UserInfo 
(
 ID    INT NOT NULL,
 NAME  VARCHAR(20),
 Hight INT,
 sex    CHAR(2)
)
--*********************************************************************
------------------------values插入数据---------------------------------
--*********************************************************************
--------------------------单条数据插入
INSERT INTO UserInfo(ID,NAME,Hight,sex) VALUES(1,'杭允贤','168','');

--------------------------插入多条数据
INSERT INTO UserInfo(ID,NAME,Hight,sex) VALUES(2,'王振','175',''),(3,'朱祁钰','173','')

2.创建物化表

SELECT * FROM new_UserInfo

create table new_UserInfo as   
 
(select * from UserInfo)   
 
data initially deferred refresh IMMEDIATE;  
 
refresh table new_UserInfo;

注意:在创建时可能会出现以下错误(导致出错的原因是:对于refresh immediate类型的MQT在select时必须包含所FROM的每个表的至少一个唯一键。假如不包含唯一键,则会报错:SQLSTATE:428EC (为具体化查询表,指定的全查询无效)。)

解决办法:

ALTER TABLE UserInfo ADD UNIQUE(ID) 

表UserInfo截图

表new_UserInfo截图

现在在表UserInfo中插入一条数据,查询出表new_UserInfo的结构如下:

INSERT INTO UserInfo(ID,NAME,Hight,sex) VALUES(4,'杭刚','177','');

这是自动更新物化表,同时也可以将物化表改为手动更新的

转载于:https://www.cnblogs.com/OliverQin/p/5305462.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值