返回首页

gbase数据、南大通用产品文档:GBase8aCREATE VIEW

更新日期:2024年09月11日

功能说明
此语句用来创建一个新的视图,或者使用OR REPLACE 子句来修改已存在的的
视图定义。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
986
说明

创建视图需要有CREATE VIEW 权限,以及构成视图的SELECT
语句中引用列的部分权限。
对于在SELECT 语句中要使用的列必须
有SELECT 权限。如果使用了OR REPLACE 子句,还必须有删除
视图的权限;

在存储子程序内,定义不能引用子程序参数或局部变量;

在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍
弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可
使用CHECK TABLE 语句;

在视图定义中命名的表必须已存在。

不能将触发程序与视图关联在一起;

在视图定义中不能引用TEMPORARY 表;

SELECT 语句不能包含FROM 子句中的子查询;

SELECT 语句不能引用系统或用户变量;

SELECT 语句不能引用预处理语句参数;

SELECT 语句字段名后可以带注释,注释字符上限为2000 个;

创建的视图名称不能与已存在的表重名。
语法格式
CREATE [OR REPLACE] VIEW [vc_name.][database_name.]view_name [(col
umn_list)] AS select_statement;
表5- 69 参数说明
参数名称


vc_name
vc 名,可选项。
database_name
数据库名,可选项。
view_name
视图名。
column_list
视图列。
select_statement
提供给定义视图的SELECT 语句。本语句可以从其它表或者
视图中提取数据,并且支持给视图添加字段,支持给视图字
段添加注释。
select
select_expr [comment comment_value],…
from
table_references
示例
示例1:创建视图。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
987
gbase> DROP TABLE IF EXISTS product;
Query OK, 0 rows affected
gbase> CREATE TABLE product (quantity INT,price INT);
Query OK, 0 rows affected
gbase> INSERT INTO product VALUES(3,50);
Query OK, 1 row affected
gbase> CREATE VIEW product_v AS SELECT quantity,price,quantity*price
FROM product;
Query OK, 0 rows affected
gbase> SELECT * FROM product_v;
+----------+-------+-----------------+
| quantity | price | quantity*price
|
+----------+-------+-----------------+
|
3 |
50 |
150 |
+----------+-------+-----------------+
1 row in set
创建带注释的视图:
Create view v_user as select id comment ‘user id’, addr comment ‘user office
address’ from user;
Create view v_user as select id as ‘id’ comment ‘user id’, addr as ‘addr’
comment ‘user office address’ from user;
注意

视图注释内容的长度限制与表中字段的注释长度限制相同,都是最大到
2000 字符。

查看视图字段注释的方式:
Show create view 视图名;
Show create table 视图名;

内容可同sqlhosts.cm1

GBase 8s 共享存储集群安装手册
南大通用数据技术股份有限公司 - 12 -

取值:[0|1]
默认值:0
说明:重复消息检查
此参数用来设定consumer 是否比对POS(防止重复消费),默认是关闭,即,检
查重复消息。除非在特殊场景下,否则不建议打开。
如果用户的consumer 做的都是insert 操作,不需要保证顺序,需要单独对某个
consumer 关闭pos 检查。配置方法是手动修改gclusterdb.kafka_consumers:
update gclusterdb.kafka_consumers set common_options=’
gcluster_kafka_ignore_pos_field = 1’
where `name`=’consumer_1’;
然后重启consumer_1。
修改方式:
可使用set 语句修改值也可在配置文件中修改值。
适用于session、
global
范围均可。