【发布时间】:2020-09-25 15:45:26
【问题描述】:
我已经启动了 Tarantool,并已致电 box.cfg{} 进行第一次配置。
下一步:我想在 Tarantool 中创建一个空间。 我阅读了文档,但我并没有完全理解所有内容。
我应该怎么做?
【问题讨论】:
我已经启动了 Tarantool,并已致电 box.cfg{} 进行第一次配置。
下一步:我想在 Tarantool 中创建一个空间。 我阅读了文档,但我并没有完全理解所有内容。
我应该怎么做?
【问题讨论】:
您不需要手动创建序列;只需传递true,tarantool 就会创建一个序列,甚至在您删除空间时将其删除。您也可以跳过parts 选项,因为它默认为{1, 'unsigned'}
box.space.users:create_index("pk", { if_not_exists = true, sequence = true })
【讨论】:
通过 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']
...
您可以阅读更多in the documentation.
【讨论】: