如何在 tarantool 中进行 UPDATE ... SET MAX(第 5 列)
How to make UPDATE ... SET MAX (column, 5) in tarantool
实际上,有一个任务-从以下字段收集使用情况统计信息:cnt
、value
、max
、min
我想一气呵成 运行 upsert
。 cnt
通过 +
设置,value
通过 =
我不明白如何制作最小字段:
- 是否有一个简单的选项来为
upsert
创建您自己的函数(lua,它将获取旧值和新值并输出结果)
- 或者我可以创建一个函数来获取整个元组、新数据,并自行更新相应的值。
只需将 before_replace
触发器设为 space,如果旧值缺失,则 returns 为新值,否则 returns 为修改后的值。大概是这样的:
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
实际上,有一个任务-从以下字段收集使用情况统计信息:cnt
、value
、max
、min
我想一气呵成 运行 upsert
。 cnt
通过 +
设置,value
通过 =
我不明白如何制作最小字段:
- 是否有一个简单的选项来为
upsert
创建您自己的函数(lua,它将获取旧值和新值并输出结果) - 或者我可以创建一个函数来获取整个元组、新数据,并自行更新相应的值。
只需将 before_replace
触发器设为 space,如果旧值缺失,则 returns 为新值,否则 returns 为修改后的值。大概是这样的:
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