Maison > développement back-end > Golang > Comment regrouper les instructions SQL dans le package « database/sql » de Go ?

Comment regrouper les instructions SQL dans le package « database/sql » de Go ?

DDD
Libérer: 2025-01-02 14:07:40
original
353 Les gens l'ont consulté

How to Batch SQL Statements in Go's `database/sql` Package?

Database/SQL Batching SQL Statements

Question :

En Java, batching SQL instructions avec le package base de données/sql est simple. Comment pouvez-vous obtenir des fonctionnalités similaires dans Go ?

 : Réponse :

Le package base de données/sql dans Go vous permet de regrouper des instructions SQL à l'aide de la fonction db.Exec, qui prend un nombre variable d'arguments. Voici comment implémenter le traitement par lots dans Go :

  1. Construisez l'instruction SQL :

    Créez une chaîne contenant l'instruction SQL avec des espaces réservés pour le valeurs que vous souhaitez insérer. Par exemple :

    stmt := "INSERT INTO my_table (field1, field2, field3) VALUES (?, ?, ?)"
    Copier après la connexion
  2. Explosez les arguments :

    Créez des tranches distinctes pour les valeurs que vous souhaitez insérer. Pour chaque ligne, ajoutez les valeurs à ces tranches.

    valueStrings := make([]string, 0, len(unsavedRows))
    valueArgs := make([]interface{}, 0, len(unsavedRows) * 3)
    
    for _, post := range unsavedRows {
        valueStrings = append(valueStrings, "(?, ?, ?)")
        valueArgs = append(valueArgs, post.Field1)
        valueArgs = append(valueArgs, post.Field2)
        valueArgs = append(valueArgs, post.Field3)
    }
    Copier après la connexion
  3. Exécutez le lot :

    Utilisez la fonction db.Exec pour exécuter l'instruction SQL par lots, en passant les tranches d'argument.

    _, err := db.Exec(stmt, valueArgs...)
    Copier après la connexion

Ceci La méthode effectue l'opération de traitement par lots en un seul aller-retour sur le réseau, ce qui la rend efficace pour insérer de grandes quantités de données.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal