RethinkDb是否支持类似于Mysql中的AUTO_INCREMENT的整数列的AUTO_INCREMENT。 https://dev.mysql.com/doc/refman/5.0/en/example-auto-increment.html
不,RethinkDB不支持它。原因是它的分布。在这样的环境中很难有一个自动增量号,因为你必须在多台机器上检查下一个增量值。
现在,让我们想一想自动增量解决的问题是什么?在MySQL上,我们希望将它用于主键,因此它需要是唯一的。这就是它的全部。自动增量不会给你任何其他东西。
在RethinkDB中,UUID保证唯一性,特别是在主键的情况下。
自动增量也是可预测的,可能它不会导致任何有害但理想情况下,它可以让人们了解下一次攻击的价值。例如,采取一个糟糕的设计应用程序,我们可以访问一些URL,如/ this / is / a / sensitive / part / 123,有人可以点击/ this / is / a / sensitive / part / 124。当然,这是没有可靠的身份验证系统的应用程序的错误。但是,UUID可能有助于减少这一点,因为UUID是不可预测的。
我们存档如下例
```
r.db('autoInc').table('testauto')
.insert(r.do(function() {
return {
autoVal:r.branch(
r.db('FlowzEngine').table('task_worker').isEmpty().not()
.and(r.db('FlowzEngine').
table('task_worker').hasFields('autoVal')
.isEmpty().not()),
r.db('FlowzEngine').table('task_worker')
.hasFields('autoVal').max('autoVal')
.do(function(doc){
return doc('autoVal').add(1)
}),
1)}
}))
```