如何在tarantool中制作 UPDATE ... SET MAX (column, 5)

实际上,有一个任务可以从字段 cntvaluemaxmin 中收集使用统计信息

我希望一次运行 upsert 就可以完成所有操作。cnt 通过 + 设定,value 通过 = 设定

我不知道如何制作最小值字段:

  1. 是否有一个简单的选项可以为 upsert 制作自己的函数 (lua,它将获取旧值和新值并输出结果)
  2. 或者我可以制作一个函数,它将获取整个元组、新数据,并更新相应的值自己。
点赞
用户4091429
用户4091429

只需将 before_replace 触发器设置为 space,如果旧值丢失,则返回新值,否则返回修改后的值。大概是这样的:

function trigger_before_update_space1 (old, new)
    return old and box.tuple.new({
        new[1],
        new[2],
        math.max(old[3], new[2])
    }) or new
end
2020-04-06 15:16:10