データ操作言語

BigQuery のデータ操作言語(DML)を使用して、BigQuery テーブルのデータを更新、挿入、削除できます。

DML ステートメントは、次の条件が満たされている場合、SELECT ステートメントと同じように実行できます。

  • 標準 SQL を使用する必要があること。標準 SQL を有効にするには、標準 SQL を有効にするをご覧ください。
  • 宛先テーブルを指定できないこと。たとえば、ウェブ UI では、[宛先テーブル] を [表が選択されていません] に設定する必要があります。

抽出先テーブルの選択なしを示す BigQuery ウェブ UI のスクリーンショット

割り当て

DML の割り当て情報については、割り当てと制限ページの DML ステートメントをご覧ください。

料金

DML の料金については、料金ページのデータ操作言語の料金をご覧ください。

制限事項

  • 各 DML ステートメントは、暗黙のトランザクションを開始します。つまり、成功した各 DML ステートメントの終了時に、ステートメントによる変更が自動的に commit されます。複数ステートメントのトランザクションはサポートされていません。
  • テーブルで同時実行できる DML ステートメントの組み合わせは、次のとおりです。

    • UPDATEINSERT
    • DELETEINSERT
    • INSERTINSERT

    それ以外の場合は、DML ステートメントの 1 つが中止されます。たとえば、テーブルに対して 2 つの UPDATE ステートメントを同時に実行すると、そのうち 1 つだけが成功します。

  • ストリーミング(tabledata.insertall メソッドを使用)によって最近書き込まれたテーブルは、UPDATEDELETEMERGE ステートメントを使用して変更することはできません。最近の書き込みとは通常、30 分以内に行われたものを指します。テーブルの他のすべての行は引き続き、UPDATEDELETEMERGE ステートメントを使用して変更できることに注意してください。

  • MERGE ステートメントにおける when_clausesearch_conditionmerge_update_clausemerge_insert_clause 内の相関サブクエリはサポートされていません。
  • INSERT 句のみがある場合(複数あっても可)、MERGE ステートメントは INSERT ステートメントのように動作します。INSERT のみの MERGE ステートメントは、他の DML ステートメント(INSERTUPDATEDELETEMERGE)と同時に実行できます。

    INSERT 以外の句(1 つ以上の UPDATE または DELETE 句)が含まれている MERGE ステートメントは、UPDATE または DELETE 句を含む他の MERGE ステートメントと同時に実行できません。また、他の DELETE または UPDATE ステートメントと同時に実行することもできません。

次のステップ

  • DML 構文ページの DML 構文およびサンプルをご覧ください。
このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。