Lenguaje de manipulación de datos

El lenguaje de manipulación de datos de BigQuery (DML) te permite actualizar, insertar y borrar datos de tus tablas de BigQuery.

Puedes ejecutar declaraciones DML como lo harías con una declaración SELECT, con las siguientes condiciones:

  • Debes usar SQL estándar. Para habilitar SQL estándar, consulta Cambia dialectos SQL.
  • No se puede especificar una tabla de destino. Por ejemplo, en la IU web debes tener Tabla de destino (Destination Table) configurada como Sin tabla seleccionada (No table selected).

    Captura de pantalla de la IU web de BigQuery que no muestra ninguna tabla de destino seleccionada

Limitaciones

  • Cada declaración DML inicia una transacción implícita, lo que significa que los cambios realizados por la instrucción se confirman de forma automática al final de cada declaración DML exitosa. No hay asistencia para transacciones con varias declaraciones.
  • Solo las siguientes combinaciones de declaraciones DML pueden ejecutarse en simultáneo en una tabla:

    • UPDATE y, luego, INSERT
    • DELETE y, luego, INSERT
    • INSERT y, luego, INSERT

    De lo contrario, una de las declaraciones DML se anulará. Por ejemplo, si dos declaraciones UPDATE se ejecutan en simultáneo en la tabla, solo una de ellas tendrá éxito.

  • Las filas que se escribieron recientemente en una tabla a través de una transmisión (con el método tabledata.insertall) no se pueden modificar mediante las declaraciones UPDATE, DELETE o MERGE. Las operaciones de escritura recientes suelen ser las que ocurren en los últimos 30 minutos. Ten en cuenta que todas las demás filas de la tabla siguen siendo modificables mediante el uso de UPDATE, DELETE o MERGE.

  • Las subconsultas correlacionadas dentro de when_clause, search_condition, merge_update_clause o merge_insert_clause no son compatibles con las declaraciones MERGE.

  • Si solo hay cláusulas INSERT (puede haber más de una), la declaración MERGE se comporta como una declaración INSERT. Una declaración MERGE de solo INSERT puede ejecutarse en simultáneo con otras declaraciones DML (INSERT, UPDATE, DELETE o MERGE).

    Si la declaración MERGE no se limita a las cláusulas INSERT (tiene una o más cláusulas UPDATE o DELETE), la declaración no puede ejecutarse en simultáneo con otras declaraciones MERGE que contengan cláusulas UPDATE o DELETE. La declaración tampoco puede ejecutarse en simultáneo con ninguna otra declaración DELETE o UPDATE.

  • Las consultas que contienen declaraciones de lenguaje de manipulación de datos (DML) no pueden usar una tabla comodín como destino de la consulta. Por ejemplo, una tabla comodín se puede usar en la cláusula FROM de una consulta UPDATE, pero no se puede usar como el destino de la operación UPDATE.

Cuotas

Para obtener información sobre las cuotas de DML, consulta Declaraciones DML en la página Cuotas y límites.

Precios

Para obtener información sobre los precios de DML, consulta los precios del lenguaje de manipulación de datos en la página Precios.

Pasos siguientes

  • Consulta la sintaxis y las muestras de DML en la página de sintaxis de DML.
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.