Maison >développement back-end >Golang >Comment corriger l'erreur d'incompatibilité du nombre de colonnes de Gorm lors des insertions groupées ?

Comment corriger l'erreur d'incompatibilité du nombre de colonnes de Gorm lors des insertions groupées ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-25 09:30:12551parcourir

How to Fix Gorm's Column Count Mismatch Error During Bulk Inserts?

Résolution de l'inadéquation du nombre de colonnes dans l'interface de tableau Gorm

Lors de la tentative d'exécution d'une insertion groupée à l'aide de la méthode Exec de Gorm avec une interface de tableau, une erreur peut se produire, indiquant une incompatibilité du nombre de colonnes. Cette erreur survient lorsque les valeurs fournies ne correspondent pas au nombre de colonnes défini dans la requête SQL.

Pour résoudre ce problème, assurez-vous que les valeurs transmises à la méthode Exec sont réparties à l'aide de l'opérateur .... Cela indique au compilateur de traiter les éléments de tranche comme des arguments individuels plutôt que de transmettre la tranche entière comme une valeur unique.

Le code mis à jour ci-dessous démontre l'utilisation correcte de l'opérateur ... :

tx := dB.GetWriteDB().Begin()
sqlStr := "INSERT INTO city(code, name) VALUES (?, ?),(?, ?)"
vals := []interface{}{}

vals = append(vals, "XX1", "Jakarta")
vals = append(vals, "XX2", "Bandung")

tx.Exec(sqlStr, vals...)

tx.Commit()

if err := tx.Error(); err != nil {
    // handle error
}

En utilisant l'opérateur ..., les valeurs de la tranche vals sont développées en arguments individuels, qui sont ensuite correctement attribués aux colonnes correspondantes dans l'instruction SQL. Cela élimine l'inadéquation du nombre de colonnes et permet une insertion groupée réussie.

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!

Déclaration:
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