如何在Tarantool中创建空间?

我已经启动了Tarantool并首次调用了box.cfg{}进行配置。

下一步:我想在Tarantool中创建一个空间。 我阅读了文档,但并不是很理解。

我应该如何做?

点赞
用户10792439
用户10792439

使用 Box API 创建:

box.schema.sequence.create('user_seq', { if_not_exists = true })
box.schema.create_space('users', { if_not_exists = true, format={
    { name = 'id', type = 'unsigned'},
    { name = 'name', type = 'string'},
    { name = 'age', type = 'unsigned'}}
})
box.space.users:create_index('pk', { parts = { 'id' }, if_not_exists = true })

使用 if_not_exists,tarantool 不会尝试创建已存在的空间。

创建索引是必要的,因为 Tarantool 不允许您在没有任何索引的空间中插入数据。

在创建空间之后,您可以插入和选择数据:

box.space.users:insert({ box.sequence.user_seq:next(), 'Artur Barsegyan', 24 })
box.space.users:get({1})
---
- - [1, 'Artur Barsegyan']
...

您可以在 文档 中阅读更多。

2020-09-23 10:05:29
用户4984564
用户4984564

你不需要手动创建序列;只需要传递 true,tarantool 就会创建序列,并且在你删除 space 时删除它。你也可以跳过 parts 选项,因为它默认为 {1,'unsigned'}

box.space.users:create_index("pk", { if_not_exists = true, sequence = true })
2020-09-23 13:13:49