資料操縱語言

BigQuery 資料操縱語言 (DML) 可讓您在 BigQuery 資料表中更新、插入及刪除資料。

執行 DML 陳述式的程序與 SELECT 陳述式相同,但必須符合下列條件:

  • 必須使用標準 SQL。如要啟用標準 SQL,請參閱啟用標準 SQL 一文。
  • 不能指定目的地資料表。舉例來說,在網頁版 UI 中,您必須將「Destination Table」(目的地資料表) 設為未選取任何資料表

    BigQuery 網頁版 UI 的螢幕擷取畫面,顯示沒有選取任何目的地資料表

限制

  • 每個 DML 陳述式都會啟動一個隱含交易,這表示在每個 DML 陳述式成功結束時,系統會自動確認此陳述式產生的費用。系統不支援多陳述式交易。
  • 系統只允許對資料表並行執行下列 DML 陳述式組合:

    • UPDATEINSERT
    • DELETEINSERT
    • INSERTINSERT

    否則,將取消其中一個 DML 陳述式。舉例來說,如果同時對資料表執行兩個 UPDATE 陳述式,則只有其中一個會成功。

  • 最近透過串流 (使用 tabledata.insertall 方法) 寫入資料表的資料列,不能使用 UPDATEDELETEMERGE 陳述式加以修改。最近的寫入通常是指過去 30 分鐘內發生的寫入作業。請注意,資料表中的所有其他資料列還是可以透過 UPDATEDELETEMERGE 陳述式加以修改。

  • MERGE 陳述式不支援在 when_clausesearch_conditionmerge_update_clausemerge_insert_clause 中使用相互關聯的子查詢。

  • 如果只有 INSERT 子句 (可以出現多次),則 MERGE 陳述式的作用類似於 INSERT 陳述式。僅限 INSERTMERGE 陳述式可以與其他 DML 陳述式 (INSERTUPDATEDELETEMERGE) 並行執行。

    如果未限制 MERGE 陳述式只使用 INSERT 子句 (還有一或多個 UPDATEDELETE 子句),則這個陳述式不能與含有 UPDATEDELETE 子句的其他 MERGE 陳述式並行執行。這個陳述式也不能與任何其他 DELETEUPDATE 陳述式並行執行。

  • 包含資料操縱語言 (DML) 陳述式的查詢,則無法使用萬用字元資料表做為查詢目標。例如,可在 UPDATE 查詢的 FROM 子句中使用萬用字元資料表,但無法將萬用字元資料表做為 UPDATE 運算的目標。

配額

如要瞭解 DML 配額資訊,請參閱配額與限制頁面上的 DML 陳述式一節。

定價

如要瞭解 DML 定價,請參閱定價頁面的資料操縱語言定價

後續步驟

  • 請參閱 DML 語法頁面的 DML 語法和範例。
本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁