tarantool - 获取 tarantool 中 box.sequence 的当前值
问题描述
我得到了序列当前值3
localhost:3401> box.sequence.S:next()
---
- 3
...
我在对象中找不到当前值
localhost:3401> box.sequence.S
---
- step: 1
id: 1
min: 1
cache: 0
uid: 1
max: 9223372036854775807
cycle: false
name: S
start: 1
...
如何获得当前值?在文档中没有找到任何方法。
解决方案
如您所见,您的序列S
有id=1
存在box.space._sequence_data
具有所有序列的当前值的系统空间。您需要做的只是从空间中选择您的序列 ID box.space._sequence_data:select(1)
:.
例如,my_seq
是我数据库中的第 4 个序列。
tarantool> my_seq = box.schema.sequence.create('MySeq', {start=111})
---
...
tarantool> box.space._sequence_data:select(my_seq.id)
---
- []
...
tarantool> my_seq:next()
---
- 111
...
tarantool> box.space._sequence_data:select(my_seq.id)
---
- - [4, 111]
正如你所看到的,在创建之后_sequence_data
没有关于新序列的任何细节,直到第一次使用my_seq:next()
它来初始化序列。
如您所见box.space._sequence_data:select(my_seq.id)
,返回带有序列号和当前值的元组。
请注意此方法没有保证。复制存在一些问题。
在2.4.1sequence:currval()
中引入:https ://github.com/tarantool/tarantool/issues/4752
推荐阅读
- node.js - Bcrypt将密码结果与Nodejs中的未定义错误进行比较
- javascript - 用 JavaScript 比较两个数据集
- json - 解析捆绑器 - json 1.8.0。Ruby 不兼容
- android - 带有私有参数的 Koin 单例注入构造函数
- wordpress - ACF:如何在 category.php 页面中获取子字段?
- mysql - 仅记录插入、更新和删除 mysql 查询?
- c++ - 使用派生类实例化基类,而不在对象定义中使用指针
- javascript - Jquery 抛出“非法调用”错误
- python - Ren'py的地图和热点
- r - caret train 错误:至少一个类级别不是有效的 R 变量名