Multiple SQL Statements in One String with Go
In PHP, it's straightforward to execute multiple SQL statements in one go by separating them with a semicolon. However, finding a MySQL driver for Go that offers this functionality can be challenging.
One popular driver, github.com/go-sql-driver/mysql, initially faced limitations in this regard. But as per the documentation, it now supports multiple statements through the multiStatements=true connection parameter.
Here's a modified code snippet to demonstrate:
package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // Create a connection string with multiStatements enabled connectionString := fmt.Sprintf("user:password@(127.0.0.1:3306)/?multiStatements=true") db, err := sql.Open("mysql", connectionString) 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() }
With this modification, multiple SQL statements in the sql string will be executed in a single call, eliminating the "Error 1064" previously encountered.
Remember that using multiple statements in one string should be approached with caution, as it can have unpredictable results. The official documentation of github.com/go-sql-driver/mysql provides further details on this topic.
The above is the detailed content of How Can I Execute Multiple SQL Statements in a Single String Using Go\'s `github.com/go-sql-driver/mysql` Driver?. For more information, please follow other related articles on the PHP Chinese website!