如何在 Tarantool 中使用自动增量索引?
How to use auto increment index in 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 与几个实例一起使用(例如基于盒式应用程序),它是否证明使用了自动增量索引?会不会有不同实例有重复key的情况?
无法通过nil
。当您分配 nil
时,您会擦除字段。请改用 box.NULL
。
但更好的是,使用某种集群 ID,它在集群中表现良好,而不是自动增量,它只在一个节点内工作。
对于集群范围的 ID,我可以建议 UUID
或类似 ULID
的东西(对于来自 https://github.com/moonlibs/id 的 ex)
我做了自动增量索引:
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 与几个实例一起使用(例如基于盒式应用程序),它是否证明使用了自动增量索引?会不会有不同实例有重复key的情况?
无法通过nil
。当您分配 nil
时,您会擦除字段。请改用 box.NULL
。
但更好的是,使用某种集群 ID,它在集群中表现良好,而不是自动增量,它只在一个节点内工作。
对于集群范围的 ID,我可以建议 UUID
或类似 ULID
的东西(对于来自 https://github.com/moonlibs/id 的 ex)