首页 > 解决方案 > 如何在 Tarantool 中使用自增索引?

问题描述

我做了自动增量索引:

box.space.metric:create_index('primary', {
        parts = {{'id', 'unsigned'}},
        sequence = true,
})

然后我尝试在id字段中传递 nil :

metric.id = nil

当我尝试插入此值时,我发现错误:

Tuple field 1 type does not match one required by operation: expected unsigned

我必须为自动增量字段传递什么值?

第二个问题。如果我使用很少实例的 tarantool-cluster(例如基于盒式应用程序),是否证明使用自动增量索引?是否会有不同实例上存在重复键的情况?

标签: tarantool

解决方案


这是不可能通过的nil。当您分配 时nil,您会擦除字段。改为使用box.NULL。但更好的是,使用某种集群 id,它在集群中表现良好,而不是自动增量,它只在一个节点内工作。

对于集群范围的 ID,我可以提出UUID或类似的建议ULID(例如来自https://github.com/moonlibs/id


推荐阅读