Maison  >  Article  >  développement back-end  >  Comment utiliser correctement l'opérateur ... de Golang pour les insertions en masse avec GORM afin d'éviter les incohérences dans le nombre de colonnes ?

Comment utiliser correctement l'opérateur ... de Golang pour les insertions en masse avec GORM afin d'éviter les incohérences dans le nombre de colonnes ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-27 06:25:18880parcourir

How to Correctly Use Golang's ... Operator for Bulk Inserts with GORM to Avoid Column Count Mismatches?

Interface Golang Join Array pour l'insertion en masse

Dans ce contexte, vous essayez de créer une insertion en masse à l'aide de GORM et avez reçu une erreur due à une incohérence dans le nombre de colonnes et de valeurs dans la requête SQL que vous avez générée. Pour résoudre ce problème, vous devez formater correctement l'interface du tableau pour générer la séquence de chaînes souhaitée.

La solution réside dans l'utilisation de l'opérateur ... spread lors du passage des éléments slice à la fonction Exec(). Cet opérateur décompresse la tranche et passe chaque élément individuellement en tant que paramètre.

Voici l'extrait de code modifié qui résout le problème :

tx.Exec(sqlStr, vals...)

Dans cette version modifiée, vals... est utilisé au lieu de vals pour transmettre les éléments slice individuellement. Cela générera la requête SQL souhaitée comme :

INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')

En passant correctement l'interface du tableau, vous pouvez exécuter avec succès l'opération d'insertion en masse et éviter l'erreur d'incompatibilité du nombre de colonnes. N'oubliez pas de toujours vérifier l'erreur renvoyée par Exec() et de la gérer de manière appropriée.

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