BigQuery 資料操縱語言 (DML) 可讓您在 BigQuery 資料表中更新、插入及刪除資料。
執行 DML 陳述式的程序與執行 SELECT
陳述式的相同,但必須符合下列條件:
- 必須使用標準 SQL。如要啟用標準 SQL,請參閱切換 SQL 方言。
不能指定目標資料表。舉例來說,在網頁版 UI 中,您必須將「Destination Table」(目標資料表) 設為「No table selected」(未選取任何資料表)。
限制
- 每個 DML 陳述式都會啟動一個隱含交易,這表示在每個 DML 陳述式成功結束時,系統會自動修訂此陳述式所做的變更。系統不支援多陳述式交易。
系統只允許對資料表並行執行下列 DML 陳述式組合:
UPDATE
和INSERT
DELETE
和INSERT
INSERT
和INSERT
否則,系統將取消其中一個 DML 陳述式。舉例來說,如果同時對資料表執行兩個
UPDATE
陳述式,則只有其中一個會成功。最近透過串流 (使用
tabledata.insertall
方法) 寫入資料表的資料列,不能使用UPDATE
、DELETE
或MERGE
陳述式加以修改。最近的寫入通常是指過去 30 分鐘內發生的寫入作業。請注意,資料表中的所有其他資料列還是可以透過UPDATE
、DELETE
或MERGE
陳述式加以修改。MERGE
陳述式不支援在when_clause
、search_condition
、merge_update_clause
或merge_insert_clause
中使用相互關聯的子查詢。如果只有
INSERT
子句 (可以出現多次),則MERGE
陳述式的作用類似於INSERT
陳述式。僅限INSERT
的MERGE
陳述式可以與其他 DML 陳述式 (INSERT
、UPDATE
、DELETE
或MERGE
) 並行執行。如果
MERGE
陳述式不只使用INSERT
子句 (還有一或多個UPDATE
或DELETE
子句),則這個陳述式不能與含有UPDATE
或DELETE
子句的其他MERGE
陳述式並行執行。這個陳述式也不能與任何其他DELETE
或UPDATE
陳述式並行執行。包含資料操縱語言 (DML) 陳述式的查詢,無法使用萬用字元資料表做為查詢目標。例如,可在
UPDATE
查詢的FROM
子句中使用萬用字元資料表,但無法將萬用字元資料表做為UPDATE
運算的目標。
配額
如要瞭解 DML 配額資訊,請參閱配額與限制頁面上的 DML 陳述式說明。
定價
如要瞭解 DML 定價,請參閱定價頁面的資料操縱語言定價。
後續步驟
- 請參閱 DML 語法頁面的 DML 語法和範例。