运行 SQL 来自 Go 的 Tarantool 中的查询是静默的(没有错误)
Running SQL queries in Tarantool from Go are silent (no errors)
我尝试使用官方 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)
}
希望对您有所帮助!如果没有 - 请告诉我,我们会再调查一次。
我尝试使用官方 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)
}
希望对您有所帮助!如果没有 - 请告诉我,我们会再调查一次。