【发布时间】:2023-03-17 04:14:01
【问题描述】:
我们有一个场景,我们想要频繁更改(单个)测量值的标签。 我们的目标是创建一个存储预后值的数据库。但它绝不应该丢失数据并跟踪对已写入数据的更改,例如更改或覆盖。
我们目前的计划是增加一个字段“write_ts”,它指示测量值是在哪个时间点插入或更改的,以及一个随每次更改而更新的标签“版本”。 此外,版本“0”应始终包含最新值。
name: temperature
-----------------
time write_ts (val) current_mA (val) version (tag) machine (tag)
2015-10-21T19:28:08Z 1445506564 25 0 injection_molding_1
所以假设我有一个更新的预测值这个示例值。
所以,我愿意:
SELECT curr_measurement
INSERT curr_measurement with new tag (version = 1)
DROP curr_mesurement
//then
INSERT new_measurement with version = 0
现在我的问题:
如果我因为任何原因在 SELECT、INSERT、DROP 之间失去了连接:
我会得到双倍的记录。
(或者如果我执行 SELECT、DROP、INSERT:我丢失了数据)
有什么方法可以防止吗?
【问题讨论】: