记oracle数据库中视图与greenplum中视图不同

oracle数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0

greenplum数据库版本:Greenplum Database 5.11.1

一、Oracle

1、创建临时表:

SQL> create table t_tmp(id number,name varchar2(10));
Table created

2、向临时表中插入数据:

SQL> insert into t_tmp values(1,'小一');
1 row inserted
SQL> insert into t_tmp values(2,'小二');
1 row inserted
SQL> insert into t_tmp values(3,'小三');
1 row inserted
SQL> insert into t_tmp values(4,'小四');
1 row inserted

SQL> commit;
Commit compete

3、查看表中数据:

4、创建视图:

SQL> create view v_tmp as select * from t_tmp;
View created

5、查看视图内数据:

6、给表重命名:

SQL> alter table t_tmp rename to t_tmp_n;
Table altered

7、继续查看视图数据:

结论:Oracle视图依赖的表重命名之后,表上的视图需要重建

操作截图:

二、greenplum

1、创建临时表:

hold_test=# create table t_tmp(id int,name varchar(10));
NOTICE:  Table doesn't have 'DISTRIBUTED BY' clause -- Using column named 'id' as the Greenplum Database data distribution key for this table.
HINT:  The 'DISTRIBUTED BY' clause determines the distribution of data. Make sure column(s) chosen are the optimal data distribution key to minimize skew.
CREATE TABLE

2、插入临时数据:

hold_test=# insert into t_tmp values(1,'小一'),(2,'小二'),(3,'小三'),(4,'小四');
INSERT 0 4

3、查看表中数据:

hold_test=# select * from t_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

4、创建视图:
hold_test=# create view v_tmp as select * from t_tmp;
CREATE VIEW

5、查看视图中数据:

hold_test=# select * from v_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

6、给表重命名:

hold_test=# alter table t_tmp rename to t_tmp_n;
ALTER TABLE

7、继续查看视图中数据:

hold_test=# select * from v_tmp;
 id | name
----+------
  3 | 小三
  4 | 小四
  1 | 小一
  2 | 小二
(4 rows)

SELECT

结论:greenplum给表重命名之后,表上的视图依然可以使用

操作截图:

 

由此可见:Oracle中视图存放的是表的名称,greenplum中视图存放的是表在数据库中对象编码oid。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值