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

标签 go tarantool

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

希望对您有所帮助!如果没有 - 请告诉我,我们会再调查一次。

关于go - 从 Go 在 Tarantool 中运行 SQL 查询是静默的(没有错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67429680/

相关文章:

go - 从 Twitter 库搜索中获取数据到 Go 中的结构

go - 在 Go 中导入自定义包

go - 从反射类型创建 slice

tarantool - 如何从 tarantool 中一次选择多个键,就像 SQL 中的 SELECT IN 一样?

go - 如何在protobuf中将自动生成的唯一ID字段设置为只读?

vim - 防止 vim-go 插件在保存时调用 'less'

sql - 检查 Tarantool 中是否存在 SQL 表

database - Redis AOF 和 Tarantool WAL 日志的区别

sql - 如何在 Tarantool 中从 SQL 调用 C 函数?