首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rethinkdb,Go:确保一个ReQL语句中的表和索引

Rethinkdb,Go:确保一个ReQL语句中的表和索引
EN

Stack Overflow用户
提问于 2016-08-31 14:37:34
回答 1查看 136关注 0票数 0

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

如果表不存在并需要创建,我还希望在表上创建辅助索引。

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

代码语言:javascript
复制
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()函数是否是对多个写命令进行排序的正确方法?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-01 07:16:31

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39252553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档