全部產品
Search
文件中心

MaxCompute:CREATE VIEW

更新時間:Jun 19, 2024

基於查詢語句建立視圖或更新已存在的視圖。

使用限制

  • 視圖可以引用其它視圖,但不能引用自己,也不能循環參考。
  • 不允許向視圖寫入資料,例如使用insert into或者insert overwrite操作視圖。

命令格式

create [or replace] view [if not exists] <view_name>
    [(<col_name> [comment <col_comment>], ...)]
    [comment <view_comment>]
    as <select_statement>;

參數說明

參數是否必選說明
or replace更新視圖需要攜帶該欄位。
if not exists如果沒有指定if not exists,在視圖已經存在時用create view會導致異常。這種情況可以用create or replace view重建視圖,重建後視圖本身的許可權保持不變。
view_name待建立或更新的視圖的名稱。
col_name待建立視圖包含的列名稱。
col_comment待建立視圖的列的注釋。
view_comment待建立視圖的注釋。
select_statementselect查詢語句,是視圖的資料來源,您必須有視圖所參考資料表的讀許可權。視圖只能包含一個有效select語句。
說明 建立或更新好視圖後,如果視圖引用的表發生了變更,有可能導致視圖無法訪問,例如刪除了引用的表。您需要自我維護參考資料表及視圖之間的對應關係。

使用樣本

  • 樣本1:基於表sale_detail建立視圖sale_detail_view。
    create view if not exists sale_detail_view
    (store_name, customer_id, price, sale_date, region)
    comment 'a view for table sale_detail'
    as select * from sale_detail;
  • 樣本2:基於表sale_detail更新視圖sale_detail_view。
    create or replace view if not exists sale_detail_view
    (store_name, customer_id, price)
    comment 'a view for table sale_detail'
    as select shop_name, customer_id, total_price from sale_detail;

相關命令

  • ALTER VIEW:修改已建立視圖的名稱或所有人。
  • DESC VIEW:查看已建立的視圖的資訊。
  • DROP VIEW:刪除已建立的視圖。