Maison > développement back-end > Golang > Comment puis-je insérer efficacement plusieurs lignes de données dans Go ?

Comment puis-je insérer efficacement plusieurs lignes de données dans Go ?

Mary-Kate Olsen
Libérer: 2024-12-22 07:36:10
original
355 Les gens l'ont consulté

How Can I Efficiently Insert Multiple Data Rows in Go?

Insertion efficace de plusieurs données dans Go

Dans les opérations de base de données, il est souvent avantageux d'insérer plusieurs lignes de données simultanément pour des raisons d'efficacité. Go propose plusieurs méthodes pour y parvenir.

Une approche consiste à utiliser la fonction db.Prepare pour créer une instruction préparée. En utilisant des instructions préparées, vous pouvez éviter l'injection SQL et améliorer les performances. Pour insérer plusieurs lignes en une seule exécution à l'aide d'une instruction préparée, suivez ces étapes :

  1. Créez une chaîne SQL avec l'instruction INSERT INTO et des espaces réservés pour les valeurs. Par exemple :
sqlStr := "INSERT INTO test(n1, n2, n3) VALUES (?, ?, ?)"
Copier après la connexion
  1. Créez une tranche de cartes pour contenir les données à insérer :
data := []map[string]string{
   {"v1":"1", "v2":"1", "v3":"1"},
   {"v1":"2", "v2":"2", "v3":"2"},
   {"v1":"3", "v2":"3", "v3":"3"},
}
Copier après la connexion
  1. Parcourez la tranche et ajoutez les valeurs à l'instruction préparée espaces réservés.
vals := []interface{}{}

for _, row := range data {
    vals = append(vals, row["v1"], row["v2"], row["v3"])
}
Copier après la connexion
  1. Il serait nécessaire de couper la dernière virgule de sqlStr pour préparer correctement l'instruction :
//trim the last ,
sqlStr = sqlStr[0:len(sqlStr)-1]
Copier après la connexion
  1. Préparez le avec le sqlStr mis à jour.
stmt, _ := db.Prepare(sqlStr)
Copier après la connexion
  1. Exécuter la déclaration avec les valeurs collectées :
res, _ := stmt.Exec(vals...)
Copier après la connexion

En utilisant cette approche, vous pouvez insérer efficacement plusieurs lignes de données dans une base de données tout en garantissant la sécurité et en réduisant le nombre d'exécutions de la base 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal