问题描述
我尝试使用官方 Tarantool 客户端从 Golang 应用程序运行 sql 查询。我知道如何做到这一点的唯一方法是使用 conn.Eval
如下所示。但我没有收到任何错误。我可以删除不存在的表,插入带有重复键的行。我永远不会发现出了什么问题。
resp,err := conn.Eval("Box.execute([[TruncATE TABLE not_exists;]])",[]interface{}{})
// err is always nil
// resp.Error is always empty
解决方法
感谢提问!
我已经与团队进行了交谈,我们有两个选项供您选择。这是第一个:
resp,err := conn.Eval("return box.execute([[TRUNCATE TABLE \"not_exists\";]])",[]interface{}{})
if len(resp.Tuples()) > 1 {
fmt.Println("Error",resp.Tuples()[1])
}else{
fmt.Println("Result",resp.Tuples()[0])
}
这是第二个:
r,err := tnt.Eval("local data,err = box.execute(...) return data or box.error(err)",[]interface{}{
`TRUNCATE table "not_exists";`,})
if err != nil {
log.Fatalln(err)
}
希望有帮助!如果没有 - 请告诉我,我们会再研究一次。