更新时间:2024-07-24 GMT+08:00

ALTER VIEW

语法

  • ALTER VIEW view_name AS select_statement;
  • ALTER VIEW view_name SET TBLPROPERTIES table_properties;

描述

“ALTER VIEW view_name AS select_statement;”用于改变已存在的视图的定义,语法效果与CREATE OR REPLACE VIEW类似。

“ALTER VIEW view_name SET TBLPROPERTIES table_properties;”中table_properties格式为 (property_name = property_value, property_name = property_value, ...)。

视图可以包含Limit和ORDER BY子句,如果关联视图的查询语句也包含了这类子句,则最后执行结果将根据视图的子句运算后得到。例如视图V指定了返回5条数据,而关联查询为select * from V limit 10,则最终只有5条数据返回。

限制

以上两种语法不可混用。

当视图包含分区,那么将无法通过这个语法来改变定义。

示例

CREATE OR REPLACE VIEW tv_view as SELECT id,name from (values (1, 'HetuEngine')) as x(id,name);
 
SELECT * FROM tv_view;
 id | name 
----|------
  1 | HetuEngine   
(1 row)
 
ALTER VIEW tv_view as SELECT id, brand FROM (VALUES (1, 'brand_1', 100), (2, 'brand_2', 300) ) AS x (id, brand, price);
 
SELECT * FROM tv_view;
 id |  brand  
----|---------
  1 | brand_1 
  2 | brand_2 
(2 rows)
 
ALTER VIEW tv_view SET TBLPROPERTIES ('comment' = 'This is a new comment');
 
show tblproperties tv_view;
                           SHOW TBLPROPERTIES                         
--------------------------------------------------------------------
        comment                 'This is a new comment'                          
        presto_query_id         '20210325_034712_00040_f63xj@default@HetuEngine' 
        presto_version                                                         
        presto_view             'true'                                           
        transient_lastDdlTime   '1616644032'                                                                                                     
(1 row)