Langage de manipulation de données

Le langage de manipulation de données BigQuery (LMD) vous permet de mettre à jour, d'insérer et de supprimer des données de vos tables BigQuery.

Vous pouvez exécuter des instructions LMD comme vous le feriez pour une instruction SELECT, avec les conditions suivantes :

  • Vous devez utiliser le langage SQL standard. Pour l'activer, reportez-vous à la section Activer le langage SQL standard.
  • Vous ne pouvez pas spécifier de table de destination. Par exemple, dans l'UI Web, la valeur Destination Table (Table de destination) doit être définie sur No table selected (Aucune table sélectionnée).

    Capture d'écran de l'interface utilisateur Web BigQuery ne montrant aucune table de destination sélectionnée

Limites

  • Chaque instruction LMD initie une transaction implicite, ce qui signifie que les modifications apportées par l'instruction sont automatiquement validées à la fin de chaque instruction LMD réussie. Les transactions contenant plusieurs instructions ne sont pas acceptées.
  • Seules les combinaisons d'instructions LMD suivantes sont autorisées à s'exécuter simultanément sur une table :

    • UPDATE et INSERT
    • DELETE et INSERT
    • INSERT et INSERT

    Sinon, l'une des instructions LMD sera annulée. Par exemple, si deux instructions UPDATE s'exécutent simultanément sur la table, une seule d'entre elles réussit.

  • Les lignes qui ont été écrites récemment dans une table via le streaming (à l'aide de la méthode tabledata.insertall) ne peuvent pas être modifiées avec les instructions UPDATE, DELETE ou MERGE. Les écritures récentes sont généralement celles qui se produisent dans les 30 dernières minutes. Notez que vous pouvez modifier toutes les autres lignes de la table à l'aide des instructions UPDATE, DELETE et MERGE.

  • Les sous-requêtes liées dans when_clause, search_condition, merge_update_clause ou merge_insert_clause ne sont pas acceptées pour les instructions MERGE.

  • S'il n'y a que des clauses INSERT (il peut y en avoir plusieurs), l'instruction MERGE se comporte comme une instruction INSERT. Vous pouvez exécuter une instruction MERGE de type INSERT uniquement simultanément avec d'autres instructions LMD (INSERT, UPDATE, DELETE ou MERGE).

    Si l'instruction MERGE n'est pas limitée aux clauses INSERT (elle comporte une ou plusieurs clauses UPDATE ou DELETE), l'instruction ne peut pas être exécutée simultanément avec d'autres instructions MERGE contenant des clauses UPDATE ou DELETE. Vous ne pouvez pas non plus l'exécuter simultanément avec d'autres instructions DELETE ou UPDATE.

  • Les requêtes contenant des instructions LMD (langage de manipulation de données) ne peuvent pas utiliser une table générique comme cible de la requête. Par exemple, une table générique peut être utilisée dans la clause FROM d'une requête UPDATE, mais ne peut pas être utilisée comme cible de l'opération UPDATE.

Quota

Pour en savoir plus sur les informations de quotas pour le LMD, consultez la section Instructions LMD de la page Quotas et limites.

Prix

Pour plus d'informations sur la tarification du LMD, consultez la section Tarifs pour les requêtes LMD de la page Tarifs.

Étape suivante

  • Reportez-vous à la page relative à la syntaxe LMD pour en savoir plus sur la syntaxe LMD et découvrir des exemples.
Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.