如何向Tarantool空间添加新字段
2020-9-24 6:42:56
收藏:0
阅读:118
评论:1
我在Tarantool中有以下的空间模式
box.schema.space.create('customer')
format = {
{name = 'id', type = 'string'},
{name = 'last_name', type = 'string'},
}
box.space.customer:format(format)
box.space.customer:create_index('id', {parts = {{field = 'id', is_nullable = false}}})
box.space.customer:replace({'1', 'Ivanov'})
我想要向这个空间添加一个新的字段first_name。有什么方法可以做到?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?

在回答问题之前,我们先讨论一下
format方法。format- 这是一个空格选项,它允许您按名称从元组中获取值。实际上,元组是一组值,任何字段都可以通过字段编号访问。接下来呢?例如,您有一个简单的模式。
box.schema.space.create('customer') box.space.customer:format(format) box.space.customer:create_index('id', {parts = {{field = 'id', is_nullable = false}}}) box.space.customer:replace({'1', 'Ivanov'})让我们定义一个新的格式,其中包含第三个字段 -
first_name。new_format = { {name = 'id', type = 'string'}, {name = 'last_name', type = 'string'}, {name = 'first_name', type = 'string'}, } box.space.customer:format(new_format) -- 错误:我们的元组仅有两个字段 tarantool> box.space.customer:format(new_format) - -- - error: Tuple field 3 required by space format is missing ...有两种方法可以解决它。
box.space.customer:update({'1'}, {{'=', 3, 'Ivan'}}) box.space.customer:format(new_format) -- OKnew_format = { {name = 'id', type = 'string'}, {name = 'last_name', type = 'string'}, {name = 'first_name', type = 'string', is_nullable = true}, } box.space.customer:format(new_format) -- OK:第三个值的缺失是可以接受的您可以选择上述一种方法。
我添加了一些注释:
tarantool> box.tuple.new({'1', 'Ivanov'}):update({{'=', 4, 'value'}}) - -- - error: Field 4 was not found in the tuple ... tarantool> box.tuple.new({'1', 'Ivanov'}):update({{'=', 3, box.NULL}, {'=', 4, 'value'}}) - -- - ['1', 'Ivanov', null, 'value'] ...在文档中了解更多关于
format方法的信息。