从 Go 在 Tarantool 中运行 SQL 查询是静默的没有错误

问题描述

我尝试使用官方 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

您能否指出获取错误方法或运行 sql 查询的正确方法

解决方法

感谢提问!

我已经与团队进行了交谈,我们有两个选项供您选择。这是第一个:

  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)
 }

希望有帮助!如果没有 - 请告诉我,我们会再研究一次。