Heim  >  Artikel  >  Backend-Entwicklung  >  Wie verwende ich Variadic-Parameter mit Gorms „Exec' für Masseneinfügungen in Go richtig?

Wie verwende ich Variadic-Parameter mit Gorms „Exec' für Masseneinfügungen in Go richtig?

DDD
DDDOriginal
2024-11-25 20:26:11156Durchsuche

How to Correctly Use Variadic Parameters with Gorm's `Exec` for Bulk Inserts in Go?

Verwenden von Variadic-Parametern zum Verbinden der Array-Schnittstelle in Golang

Bei Ihrem Versuch, Masseneinfügungen mit Gorm auszuführen, ist ein Fehler aufgetreten, der auf Folgendes zurückzuführen ist: Nichtübereinstimmung zwischen der Spaltenanzahl und den bereitgestellten Werten. Dieses Problem ist auf die falsche Formatierung Ihrer Abfrage zurückzuführen, wenn Sie eine Array-Schnittstelle verwenden.

Lösung:

Um dieses Problem zu beheben, müssen Sie das „…“ verwenden. Operator, wenn Elemente des Slice mit variadischen Parametern an die Funktion übergeben werden. Dadurch wird der Compiler angewiesen, jedes Element einzeln zu übergeben, anstatt den Slice-Wert als einzelnes Argument zu übergeben.

tx.Exec(sqlStr, vals...)

Erklärung:

Die Tx.Exec() Funktion hat die Signatur func (tx *Tx) Exec(query string, args ...interface{}) (Ergebnis, Fehler). Das bedeutet, dass Sie als zweiten Parameter, bezeichnet als args, eine variable Anzahl von Argumenten übergeben können. Durch die Verwendung des Operators „…“ weisen Sie den Compiler an, das Vals-Slice in einzelne Argumente zu erweitern.

Dies führt dazu, dass die folgende Abfrage ausgeführt wird:

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

Das obige ist der detaillierte Inhalt vonWie verwende ich Variadic-Parameter mit Gorms „Exec' für Masseneinfügungen in Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn