tarantool - 如何在 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(例如基于盒式应用程序),是否证明使用自动增量索引?是否会有不同实例上存在重复键的情况?
解决方案
这是不可能通过的nil
。当您分配 时nil
,您会擦除字段。改为使用box.NULL
。但更好的是,使用某种集群 id,它在集群中表现良好,而不是自动增量,它只在一个节点内工作。
对于集群范围的 ID,我可以提出UUID
或类似的建议ULID
(例如来自https://github.com/moonlibs/id)
推荐阅读
- webpack - 是否可以使用 webpack 从 es6 编译为 commonjs
- nginx - Nginx 在 keycloak 和本地微服务前
- swift - UIViewController 的便捷初始化中调用了什么初始化程序?
- reactjs - React Native:状态有时为空 - setState 正在异步工作
- java - 尝试为 Android 设置 Gmail API 时,应用程序崩溃并给出 NullPointerException 错误
- image - 图像识别 api 和图像中的图像计数
- c# - 如何使用 C# 使用现代身份验证连接到邮箱
- vba - 是/否数据类型始终显示为真/假 - 布尔格式问题
- c++ - 如何通过悬停光标来获取 UIAutomationElement 的 NamePropertyId?
- python - 'string.format' 是否允许对迭代/字典进行更多控制?