gpt4 book ai didi

go - Rethinkdb,去 : Ensure Table and Index in one ReQL statement

转载 作者:数据小太阳 更新时间:2023-10-29 03:26:45 25 4
gpt4 key购买 nike

我需要确保在应用程序启动时存在表。

如果表不存在需要创建,我还想在表上创建二级索引。

这在 Go 中很容易完成,但我想在 ReQL 中用一条语句完成。所以我想到了这个:

func ensureTableIndex(ses *r.Session, name string, index string) (err error) {
err = r.TableList().Contains(name).Do(r.Branch(r.Row, r.Expr(nil), r.Do(func() r.Term {
return r.TableCreate(name).Do(func() r.Term {
return r.Table(name).IndexCreate(index)
})
}))).Exec(ses)
return
}

似乎通过了测试。

我的问题是,这是否是一次性创建表和索引的正确/有效方法?使用 ReQL Do() 函数是否是对多个写入命令进行排序的正确方法?

谢谢

最佳答案

是的,do 是您在 ReQL 中排序操作的正常方式。 r.Do 作为 branch 的第三个参数是多余的;您可以直接将 tableCreate 调用放在那里。

关于go - Rethinkdb,去 : Ensure Table and Index in one ReQL statement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39252553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com