Linguagem de manipulação de dados

A Linguagem de manipulação de dados (DML, na sigla em inglês) do BigQuery permite atualizar, inserir e excluir dados das tabelas do BigQuery.

Você pode executar instruções DML como se fossem uma instrução SELECT, com as seguintes condições:

  • É necessário usar o SQL padrão. Para ativá-lo, consulte Ativação do SQL padrão.
  • Não é possível especificar uma tabela de destino. Por exemplo, na IU da Web, é necessário definir Tabela de destino para Nenhuma tabela selecionada.

Captura de tela da IU da Web do BigQuery mostrando que não há tabelas de destino selecionadas

Cotas

Para mais informações sobre as cotas para DML, consulte Instruções DML na página de Cotas e limites.

Preços

Para saber mais sobre preços da DML, consulte Preços da Linguagem de manipulação de dados, na página "Preços".

Limitações

  • Uma instrução DML inicia uma transação implícita. Isso significa que a confirmação das alterações feitas por ela é feita automaticamente no final de cada instrução DML bem-sucedida. Transações de múltiplas instruções não são aceitas.
  • Somente as seguintes combinações de instruções DML têm permissão para serem executadas simultaneamente em uma tabela:

    • UPDATE e INSERT
    • DELETE e INSERT
    • INSERT e INSERT

    Caso contrário, uma das instruções DML será cancelada. Por exemplo, se duas instruções UPDATE forem executadas simultaneamente em relação a uma tabela, só uma delas será bem-sucedida.

  • Tabelas que receberam gravações recentemente por meio do streaming (tabledata.insertall) não podem ser modificadas por instruções UPDATE, DELETE ou MERGE. Para verificar se a tabela tem um buffer de streaming, verifique se na resposta tables.get existe uma seção denominada streamingBuffer. Caso não haja, a tabela poderá ser modificada com o uso da instrução UPDATE, DELETE ou MERGE.

  • Subconsultas correlacionadas dentro de when_clause, search_condition, merge_update_clause ou merge_insert_clause não têm suporte em instruções MERGE.
  • Se houver apenas cláusulas INSERT (pode haver mais de uma), a instrução MERGE se comportará como uma instrução INSERT. Uma instrução somente INSERT em MERGE pode ser executada simultaneamente a outras instruções DML (INSERT, UPDATE, DELETE ou MERGE).

    Se a instrução MERGE não estiver limitada a cláusulas INSERT (ela tem uma ou mais cláusulas UPDATE ou DELETE), a instrução não poderá ser executada simultaneamente a outras instruções MERGE que contenham cláusulas UPDATE ou DELETE. A instrução também não poderá ser executada simultaneamente a nenhuma outra instrução DELETE ou UPDATE.

Próximas etapas

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.