使用Go 在單一字串中執行多個SQL 語句
mysqldump 產生的SQL 轉儲通常包含需要順序執行的多個語句建立一個資料庫。尋找可以處理此任務的 Go MySQL 驅動程式可能具有挑戰性。
現有驅動程式有限制
Go-MySQL-Driver 和 MyMySQL 等常見驅動程式缺乏對在單一字串中執行多個語句。嘗試執行此類語句將導致錯誤。
Go-MySQL-Driver:啟用多語句支援
go-sql-driver/mysql 驅動程式提供了解決方案是允許您設定multiStatements=true 連線參數。此參數允許在單一字串中執行多個語句。
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() }
透過設定 multiStatements=true,驅動程式將執行字串中的兩個語句,成功建立 foo 模式。需要注意的是,驅動程式的文件警告不要使用此選項,因為可能存在交易問題和其他限制。
以上是如何使用 Go 的 MySQL 驅動程式在單一字串中執行多個 SQL 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!