Heim >Backend-Entwicklung >Golang >Wie verwende ich den ...-Operator von Golang für Masseneinfügungen mit GORM richtig, um Nichtübereinstimmungen in der Spaltenanzahl zu vermeiden?
Golang-Join-Array-Schnittstelle für Masseneinfügung
In diesem Zusammenhang versuchen Sie, eine Masseneinfügung mit GORM zu erstellen und haben eine Fehlermeldung erhalten Dies kann auf eine Diskrepanz zwischen der Anzahl der Spalten und den Werten in der von Ihnen generierten SQL-Abfrage zurückzuführen sein. Um dieses Problem zu beheben, müssen Sie die Array-Schnittstelle korrekt formatieren, um die gewünschte Zeichenfolgensequenz zu generieren.
Die Lösung liegt in der Verwendung des Spread-Operators ... bei der Übergabe der Slice-Elemente an die Exec()-Funktion. Dieser Operator entpackt das Slice und übergibt jedes Element einzeln als Parameter.
Hier ist der geänderte Codeausschnitt, der das Problem behebt:
tx.Exec(sqlStr, vals...)
In dieser modifizierten Version wird vals... verwendet anstelle von Vals, um die Slice-Elemente einzeln zu übergeben. Dadurch wird die gewünschte SQL-Abfrage wie folgt generiert:
INSERT INTO city(code, name) VALUES ('XX1', 'Jakarta'),('XX2', 'Bandung')
Durch die korrekte Übergabe der Array-Schnittstelle können Sie den Masseneinfügungsvorgang erfolgreich ausführen und den Fehler bei der Nichtübereinstimmung der Spaltenanzahl vermeiden. Denken Sie daran, immer den von Exec() zurückgegebenen Fehler zu überprüfen und ihn entsprechend zu behandeln.
Das obige ist der detaillierte Inhalt vonWie verwende ich den ...-Operator von Golang für Masseneinfügungen mit GORM richtig, um Nichtübereinstimmungen in der Spaltenanzahl zu vermeiden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!