我正在处理一些高容量但不是非常可变的数据,并且想要维护一个更改表(调用它update_history
),以及一个保存当前数据的表(调用它current_data
)。
current_data
包含:(id
这是唯一的),,value
(tstamp
当前时间戳)update_history
包含:(id
这也是唯一的),,value
(tstamp
对于所有更新),delete
假设我有id
= 1 的某些数据。在时间 0 初始化为 10,在时间 5 更改为 2,在时间 8 删除,在时间 10 再次设置为 10。毕竟,我想要update_history
包含装有:
Id Value Stamp Delete
1 10 0 0
1 2 5 0
1 2 8 1
1 10 10 0
虽然我可以从update_history
对表的每次更改中进行选择current_data
,但查看值是否已更改,或者是否删除了 id 并插入了一行,但这似乎有点过分。
我正在寻找一种在一个或两个查询中批量执行此操作的方法。特别是,我正在寻找一个查询,它检查每个in的对应id
in ,如果未找到最新或in的值不匹配,则插入一行, , , =0。update_history
id
current_data
tstamp
id
update_history
id
value
stamp
delete
任何帮助将不胜感激。