当前位置: 首页 > 知识库问答 >
问题:

塔兰托命名的领域?

隆睿
2023-03-14

有什么方法可以命名与SQL中的列相似的字段吗?

这个想法是,我可能想插入一个客户记录:-姓名-电话-电子邮件-网站

某些字段有时可能存在,而其他字段可能不存在,并且它们可能以不同的顺序出现。

是否有其他方法将记录插入到按字段名引用它们的元组中?

伪代码的东西,比如:

s:insert(1, "name": "foo name", "phone": "foo phone")
s:insert(2, "phone": "bar phone", "name": "bar name", "email": "bar email")

共有1个答案

吴修洁
2023-03-14

在为空间定义架构时,可以使用尚未记录的space:format()函数指定字段名,之后可以将这些名称用于索引定义<代码>[在Tarantool 1.7中提供]

示例代码:

box.once("testapp:schema:1", function()
    local customer = box.schema.space.create('customer')
    customer:format({
        {'customer_id', 'unsigned'},
        {'name', 'string'},
    })
    customer:create_index('customer_id', {parts = {'customer_id'}})

    local account = box.schema.space.create('account')
    account:format({
        {'account_id', 'unsigned'},
        {'customer_id', 'unsigned'},
        {'balance', 'unsigned'},
        {'name', 'string'},
    })
    account:create_index('account_id', {parts = {'account_id'}})
    account:create_index('customer_id', {parts = {'customer_id'}, unique = false})
    box.snapshot()
end)

不幸的是,您不能在space:insert()或类似函数中使用字段名。

 类似资料:
  • 我们正在使用Tarantool 1.5,对配置选项有疑问:如果我们设置以下选项: 这是否意味着fsync(2)根本不会被调用?

  • 使用tarantool,为什么我在日志这个奇怪的消息:

  • 我已经安装了tarantool(tarantool_box)和tarantool客户端。我可以开始塔兰托了 但是当我试图连接到服务器时 我只看到管理员控制台 并且只能使用一些命令和类似sql的查询。我无法使用《用户指南》中的任何命令,并且几乎所有以开头的命令都会失败:

  • 有几种方法可以在中获得时间: 使用模块 但是什么是处理日期的正确方法呢?

  • 我有一个问题。我在玩pygame中的游戏“生命的游戏”。我有一个目标。我不知道如何给我的游戏添加无尽的能量场。你能帮帮我吗?添加,抱歉-我的英语很差(.i想在我的游戏中添加无尽的字段。堆栈溢出要求我添加一些txt。我不知道为什么

  • 我需要将托管在命名空间 A 中的 mysql 数据库提供给部署在命名空间“B”中的应用程序。 到目前为止,我已经尝试了几种方法,其中最有希望的是使用endpoint和服务的组合,如下所示: 而mysql容器的一个实例已经在名称空间“A”中分离,并通过节点端口配置在31234处公开。 该应用程序有一个init容器init-mysql,它使用主机名“mysql”和正确的凭证来ping MySQL实例。