Datenbank/SQL-Batchverarbeitung von SQL-Anweisungen
Frage:
In Java, Batchverarbeitung von SQL-Anweisungen mit dem Datenbank/SQL-Paket ist unkompliziert. Wie können Sie eine ähnliche Funktionalität in Go erreichen?
: Antwort:
Das Datenbank-/SQL-Paket in Go ermöglicht Ihnen das Stapeln von SQL-Anweisungen mithilfe der db.Exec-Funktion. die eine variable Anzahl von Argumenten benötigt. So können Sie Batching in Go implementieren:
Erstellen Sie die SQL-Anweisung:
Erstellen Sie eine Zeichenfolge, die die SQL-Anweisung mit Platzhaltern für die enthält Werte, die Sie einfügen möchten. Zum Beispiel:
stmt := "INSERT INTO my_table (field1, field2, field3) VALUES (?, ?, ?)"
Argumente auflösen:
Erstellen Sie separate Slices für die Werte, die Sie einfügen möchten. Hängen Sie für jede Zeile die Werte an diese Slices an.
valueStrings := make([]string, 0, len(unsavedRows)) valueArgs := make([]interface{}, 0, len(unsavedRows) * 3) for _, post := range unsavedRows { valueStrings = append(valueStrings, "(?, ?, ?)") valueArgs = append(valueArgs, post.Field1) valueArgs = append(valueArgs, post.Field2) valueArgs = append(valueArgs, post.Field3) }
Führen Sie den Stapel aus:
Verwenden Sie zum Ausführen die Funktion db.Exec die gestapelte SQL-Anweisung und übergibt das Argument Slices.
_, err := db.Exec(stmt, valueArgs...)
Diese Methode führt den Batch-Vorgang in einem einzigen Netzwerk-Roundtrip durch und ist somit effizient für das Einfügen großer Datenmengen.
Das obige ist der detaillierte Inhalt vonWie stapele ich SQL-Anweisungen im Paket „database/sql' von Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!