我正在尝试使用 golang 在 memsql 中执行查询。但我不断出错。 “MemSQL 不支持服务器端准备好的语句。”
我什至使用了“interpolateParams=true”,但仍然出现同样的错误。
var Dbmysql, err = sql.Open("mysql", "root:@/memsql?interpolateParams=true")
tx,err := Dbmysql.Begin()
fmt.Println(err)
stmt, err := tx.Prepare("INSERT INTO squareNum VALUES( ?, ? )") // ? = placeholder
fmt.Println(err)
for i:=0;i<1e6;i++{
_,err = stmt.Exec("test",1)
log.Println(tx.Rollback())
fmt.Println(err)
}
err = tx.Commit()
fmt.Println(err)
最佳答案
在 Go 的驱动程序中,interpolateParams=true 选项仅适用于 Exec("INSERT INTO squareNum VALUES( ?, ? )", 1, 2)
- 它不适用于 准备()
。所以你必须坚持使用前者 - 只是不要使用显式 Prepare()
关于go - Memsql 抛出错误 MemSQL 不支持服务器端准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51711919/