Führen Sie mehrere SQL-Anweisungen in einer einzelnen Zeichenfolge mit Go aus
Von mysqldump generierte SQL-Dumps enthalten häufig mehrere Anweisungen, die nacheinander ausgeführt werden müssen eine Datenbank einrichten. Einen MySQL-Treiber für Go zu finden, der diese Aufgabe bewältigen kann, kann eine Herausforderung sein.
Vorhandene Treiber mit Einschränkungen
Gemeinsame Treiber wie Go-MySQL-Driver und MySQL werden nicht unterstützt Ausführen mehrerer Anweisungen in einer einzigen Zeichenfolge. Versuche, solche Anweisungen auszuführen, führen zu Fehlern.
Go-MySQL-Driver: Multi-Statement-Unterstützung aktivieren
Der go-sql-driver/mysql-Treiber bietet eine Lösung, indem Sie den Verbindungsparameter multiStatements=true festlegen können. Dieser Parameter ermöglicht die Ausführung mehrerer Anweisungen innerhalb einer einzelnen Zeichenfolge.
package main import ( "database/sql" "log" _ "github.com/go-sql-driver/mysql" ) func main() { db, err := sql.Open("mysql", "user:password@(127.0.0.1:3306)/?multiStatements=true") if err != nil { log.Println(err) } sql := "DROP SCHEMA IF EXISTS foo; CREATE SCHEMA IF NOT EXISTS foo;" _, err = db.Exec(sql) if err != nil { log.Println(err) } db.Close() }
Durch die Einstellung multiStatements=true führt der Treiber beide Anweisungen in der Zeichenfolge aus und erstellt so erfolgreich das Foo-Schema. Es ist wichtig zu beachten, dass in der Dokumentation des Fahrers vor der Verwendung dieser Option aufgrund möglicher Probleme bei Transaktionen und anderen Einschränkungen gewarnt wird.
Das obige ist der detaillierte Inhalt vonWie kann ich mit dem MySQL-Treiber von Go mehrere SQL-Anweisungen in einer einzigen Zeichenfolge ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!