Memsql引发错误MemSQL不支持服务器端准备好的语句

时间:2018-08-06 16:23:26

标签: go nosql memsql

我正在尝试使用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)

1 个答案:

答案 0 :(得分:1)

在Go的驱动程序中,interpolateParams = true选项仅适用于Exec("INSERT INTO squareNum VALUES( ?, ? )", 1, 2)之类的东西-不适用于Prepare()。因此,您必须坚持使用前者-只是不要使用显式的Prepare()